Ich suche einen Profiler, um den Engpass in meinem C ++ - Code zu finden. Ich möchte ein kostenloses, nicht aufdringliches und gutes Profiling-Tool finden. Ich bin ein Spieleentwickler und benutze PIX für Xbox 360 und fand es sehr gut, aber es ist nicht kostenlos. Ich kenne den Intel VTune , aber er ist auch nicht kostenlos.
224
Antworten:
CodeXL hat jetzt den AMD Code Analyst von End Of Line abgelöst und beide sind kostenlos, aber nicht so fortgeschritten wie VTune. Es gibt auch Sleepy , was sehr einfach ist, aber in vielen Fällen die Arbeit erledigt.
quelle
Very Sleepy ist ein C / C ++ - CPU-Profiler für Windows-Systeme (kostenlos).
CppCheck ist ein statischer C / C ++ - CPU-Profiler für Windows-Systeme (kostenlos).
quelle
Proffy ist ziemlich cool: http://pauldoo.com/proffy/
Haftungsausschluss: Ich habe das geschrieben.
quelle
Für MS VC 7.1 und höher gibt es einen instrumentenbezogenen (funktionsgenauen) Profiler namens MicroProfiler. Sie können es hier (x64) oder hier (x86) bekommen . Es erfordert keine Änderungen oder Ergänzungen Ihres Codes und kann Funktionsstatistiken mit Anrufern und Anrufern in Echtzeit anzeigen, ohne dass die Anwendung geschlossen oder der Profilierungsprozess 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 lediglich 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 übertrifft (wenn es in der Instrumentierung auf Funktionsebene aufgerufen wird). Das folgende Programm (vollständige Optimierung, Inlining deaktiviert) wird dreimal schneller ausgeführt, wenn der Mikroprofiler die Ergebnisse in Echtzeit anzeigt, als wenn AQTime lediglich Statistiken sammelt:
quelle
Microsoft hat das Windows Performance Toolkit .
Es erfordert Windows Vista, Windows Server 2008 oder Windows 7.
quelle
Neu hinzugekommen ist Shiny .
.
quelle
Ich empfehle Windows Performance Toolkit (WPT) oder XPERF
Das Befehlszeilen-Xperf-Befehlszeilentool zeichnet Ereignisverfolgungsprotokolle für Windows (ETW) auf, die mit dem GUI-Tool xperfview analysiert werden können.
Die Verwendung von Stacktrace-Befehlszeilenargumenten hat sich für mein Unternehmen als unschätzbares Werkzeug erwiesen, da es Engpässe profiliert und behebt. Eines der überzeugendsten Dinge ist, dass das WPT in jeder Umgebung installiert werden kann, selbst unter dem ehrwürdigen Windows XP .
Unter Windows 8 bringt der Windows Performance Analyzer xperf auf ein noch höheres Niveau.
Die harten Zahlen und Statistiken in ETW-Protokollen sind im Detail beispiellos, mit Ausnahme des Visual Studio Profiler (2010/2012), der ebenfalls großartig ist, aber keine kostenlose AFAIK.
Wenn Sie xperf noch nie benutzt haben ... wissen Sie nicht, was Sie vermissen
quelle
Ich verwende AQTime, es ist eines der besten Profiling-Tools, die ich je verwendet habe. Es ist nicht kostenlos, aber Sie können eine 30-Tage-Testversion erhalten. Wenn Sie also nur ein Projekt optimieren und profilieren möchten und 30 Tage für Sie ausreichen, würde ich die Verwendung dieser Anwendung empfehlen. ( http://www.automatedqa.com/downloads/aqtime/index.asp )
quelle
Bitte versuchen Sie es mit meinem Profiler namens cRunWatch. Es sind nur zwei Dateien, sodass die Integration in Ihre Projekte einfach ist und genau eine Zeile hinzugefügt werden muss, um einen Code zu instrumentieren.
http://ravenspoint.wordpress.com/2010/06/16/timing/
Benötigt die Boost-Bibliothek.
quelle
Ich habe Luke Stackwalker verwendet und es hat den Job für mein Visual Studio-Projekt gemacht.
Weitere interessante Projekte sind:
quelle
Ich habe jahrelang "TrueTime - Teil der DevPartner-Suite von Compuware" verwendet. Es gibt eine [kostenlose Version] (Sie können die Compuware DevPartner Performance Analysis Community Edition ausprobieren.).
quelle
Ich verwende VSPerfMon, den StandAlone Visual Studio Profiler. Ich habe ein GUI-Tool geschrieben, mit dem ich es ausführen und die Ergebnisse anzeigen kann.
http://code.google.com/p/vsptree/
quelle
Sie können EmbeddedProfiler verwenden, es ist sowohl für Linux als auch für Windwos kostenlos.
Der Profiler ist aufdringlich (nach Funktionalität), erfordert jedoch keine Codeänderungen. Fügen Sie einfach ein bestimmtes Compiler-Flag hinzu (-finstrument-functios für gcc / MinGW oder / GH für MSVC) und verknüpfen Sie die Bibliothek des Profilers. Es kann Ihnen einen vollständigen Anrufbaum oder nur eine Funktionsliste bereitstellen. Es hat eine eigene GUI für den Analysator.
quelle