Was ist der beste kostenlose C++-Profiler für Windows? [closed]

Lesezeit: 5 Minuten

Ich suche einen Profiler, um den Engpass in meinem C++-Code zu finden. Ich würde gerne ein kostenloses, unaufdringliches und gutes Profilerstellungstool finden. Ich bin Spieleentwickler und benutze PIX für Xbox 360 und fand es sehr gut, aber es ist nicht kostenlos. Ich kenne Intel VTuneaber es ist auch nicht kostenlos.

  • VTune scheint jetzt kostenlos zu sein: software.intel.com/en-us/vtune. Ich habe die Community Edition heruntergeladen und sie leistet hervorragende Arbeit bei der Profilerstellung von C++ sowie von verwaltetem C#-Code

    – Dr. Andrew Burnett-Thompson

    10. Mai 2019 um 22:24 Uhr

  • Wieso ist das Off-Topic? Entwicklungstools sind, soweit ich weiß, ein Thema. Es ist jedoch meinungsbasiert.

    – Nic Szermann

    23. Januar 2020 um 5:14 Uhr

Was ist der beste kostenlose C Profiler fur Windows closed
yrp

CodeXL hat jetzt das End Of Line’d ersetzt AMD-Code-Analyst und beide sind kostenlos, aber nicht so fortschrittlich wie VTune.

Es gibt auch Schläfrigwas sehr einfach ist, aber in vielen Fällen funktioniert.

Notiz: Alle drei oben genannten Tools werden seit mehreren Jahren nicht mehr gewartet.

  • Hier ist der Link für CodeAnalyst: developer.amd.com/CPU/CODEANALYST/Pages/default.aspx

    – epotter

    19. Februar 2009 um 17:19 Uhr

  • Ich habe jetzt versucht, damit zu arbeiten, und es hat mir überhaupt nicht gefallen. Ich konnte nicht einmal verstehen, wie man die Gesamtzeit der Funktion % (einschließlich der Aufgerufenen) erhält, was TrueTime vor 10 Jahren gut machen konnte.

    – Pavel Radzivilovsky

    13. März 2011 um 15:05 Uhr

  • Ich habe eine Anpassung von sleepy geschrieben, die nicht von wxWidgets abhängt, sondern in der Befehlszeile ausgeführt wird. Sie führen es für einen bestimmten Zeitraum gegen einen laufenden Prozess aus und wenn Sie es dann stoppen, erhalten Sie die Statistiken darüber, womit der Prozess seine Zeit verbracht hat. Es ist nicht intrusiv, da Sie Ihren Code in keiner Weise ändern müssen, um es zu verwenden, aber es hält Ihre Threads an, während es die Call-Stacks liest. Sie benötigen auch die verfügbaren PDB-Dateien, damit Sie eine aussagekräftige Ausgabe erhalten, aber ich denke, das gilt für jeden Profiler.

    – Goldesel

    13. Februar 2012 um 10:44 Uhr

  • Ich würde empfehlen, xperf auszuprobieren. Ich fand es besser als AMD Code Analyst.

    – MW_dev

    1. Mai 2013 um 1:21 Uhr

  • CodeAnalyst wird keine Updates mehr erhalten, mit Ausnahme von kritischen Fehlerbehebungen. Sie wechselten zu CodeXL. Hier ist der Link damit Sie Ihre Antwort aktualisieren können. Und übrigens danke, dass Sie mich jetzt über CodeAnalyst/XL informiert haben.

    – Adria CS

    5. Juni 2014 um 16:14 Uhr


Sehr müde ist ein C/C++ CPU-Profiler für Windows-Systeme (kostenlos).

  • Wenn Sie eine Windows-Binärdatei aus dem gcc-Stack verwenden, ist dies eine gute Wahl – AMD CodeAnalyst erkennt keine gcc-Symbole unter Windows, aber sehr schläfrig!

    – Mike

    12. Februar 2012 um 1:48 Uhr

  • Beachten Sie, dass die neueste Version von Very Sleepy aus dem Jahr 2014 stammt.

    – Zitrax

    2. Oktober 2020 um 19:24 Uhr

  • Very Sleepy v0.91 ist jetzt erhältlich: github.com/VerySleepy/verysleepy/releases/tag/v0.91

    – Wladimir Pantelejew

    21. August 2021 um 19:26 Uhr

Proffy ist ziemlich cool: http://pauldoo.com/proffy/

Disclaimer: Das habe ich geschrieben.

  • #shamelessSelfPromotion 🙂 zwinker zwinker*

    – Yunfei Chen

    6. Juli 2020 um 21:11 Uhr

Es gibt einen instrumentierenden (funktionsgenauen) Profiler für MS VC 7.1 und höher namens MicroProfiler. Du kannst es hier bekommen (x64) oder hier (x86). Es erfordert keine Änderungen oder Ergänzungen zu Ihrem Code und ist in der Lage, Funktionsstatistiken mit Anrufern und Aufgerufenen anzuzeigen Echtzeit ohne dass die Anwendung geschlossen/der Profiling-Prozess gestoppt werden muss.

Es lässt sich in VisualStudio integrieren, sodass Sie die Profilerstellung für ein Projekt einfach aktivieren/deaktivieren können. Es ist auch möglich, es auf dem sauberen Computer zu installieren, es müssen nur die Symbolinformationen zusammen mit der zu profilierenden ausführbaren Datei gefunden werden.

Dieses Tool ist nützlich, wenn die statistische Annäherung von Stichprobenprofilern wie Very Sleepy nicht ausreicht.

Ein grober Vergleich zeigt, dass es AQTime schlägt (wenn es in der Instrumentierung, Ausführung auf Funktionsebene aufgerufen wird). Das folgende Programm (vollständige Optimierung, Inlining deaktiviert) läuft dreimal schneller, wenn der Micro-Profiler Ergebnisse in Echtzeit anzeigt, als wenn AQTime nur Statistiken sammelt:

void f()
{
    srand(time(0));

    vector<double> v(300000);

    generate_n(v.begin(), v.size(), &random);
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
}

Microsoft hat die Windows-Leistungs-Toolkit.

Es erfordert Windows Vista, Windows-Server 2008oder Windows 7.

  • Wie ist es nicht kostenlos? Es ist ein Teil des Windows SDK. Ich konnte es ohne Probleme herunterladen. (Zugegeben, wir haben ein MSDN-Abonnement, daher haben einige Leute möglicherweise eine andere Erfahrung als ich.)

    – epotter

    26. Juli 2011 um 12:32 Uhr

  • Kostenlos oder nicht, der Link funktioniert nicht mehr richtig.

    – Tomáš Zato – Wiedereinsetzung von Monica

    7. Oktober 2015 um 11:11 Uhr

Ein weiterer Profiler ist Glänzend.

​​​​​

  • Wie ist es nicht kostenlos? Es ist ein Teil des Windows SDK. Ich konnte es ohne Probleme herunterladen. (Zugegeben, wir haben ein MSDN-Abonnement, daher haben einige Leute möglicherweise eine andere Erfahrung als ich.)

    – epotter

    26. Juli 2011 um 12:32 Uhr

  • Kostenlos oder nicht, der Link funktioniert nicht mehr richtig.

    – Tomáš Zato – Wiedereinsetzung von Monica

    7. Oktober 2015 um 11:11 Uhr

Ich empfehle sehr Windows Performance Toolkit (WPT) oder XPERF

Das Befehlszeilentool xperf zeichnet Event Tracing for Windows (ETW)-Protokolle auf, die mit dem GUI-Tool xperfview analysiert werden können.

Verwenden Stacktrace-Befehlszeilenargument hat sich als unschätzbares Werkzeug für mein Unternehmen erwiesen, da es Engpässe profiliert und behebt. Eines der überzeugendsten Dinge ist, dass der WPT in jeder Umgebung installiert werden kann, sogar auf dem Ehrwürdigen Windows XP.

An Windows 8 die Windows-Leistungsanalyse bringt xperf auf ein noch höheres Niveau.

Die harten Zahlen und Statistiken, die in ETW-Protokollen bereitgestellt werden, sind im Detail beispiellos, mit Ausnahme von Visual Studio Profiler (2010/2012), der ebenfalls großartig, aber AFAIK nicht kostenlos ist.

Wenn Sie xperf noch nie verwendet haben, wissen Sie nicht, was Sie vermissen

  • Nun, ich weiß, dass mir eine funktionierende URL zur Website fehlt.

    – Tomáš Zato – Wiedereinsetzung von Monica

    23. Oktober 2015 um 8:35 Uhr

  • Ich habe es gerade ausprobiert, aber es lädt nie die .pdb für meine Anwendung (nach dem Hinzufügen des Build-Ordners zum Symbolpfad), also ist es irgendwie nutzlos, wenn Sie tatsächlich C++-Code profilieren möchten. Es ist nützlich, wenn Sie alles andere erfahren möchten, was das System getan hat – es bietet ein erstaunliches Gesamtbild. Aber für die C++-Profilerstellung hat es einfach nichts gebracht.

    – Kuba hat Monica nicht vergessen

    6. Juli 2020 um 16:38 Uhr

989430cookie-checkWas ist der beste kostenlose C++-Profiler für Windows? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy