Frage

Ich suche nach einem Profiler, um den Engpass in meinem C ++ Code zu finden. Ich möchte ein freies, nicht-intrusive finden und einen gutes Profilierungswerkzeug. Ich bin ein Spiel-Entwickler, und ich verwende PIX für Xbox 360 und fand es sehr gut, aber es ist nicht frei. Ich weiß, dass die Intel VTune , aber es ist auch nicht frei.

War es hilfreich?

Lösung

CodeXL hat jetzt das Ende des Line'd AMD-Code Analyst und beide sind frei, aber nicht so weit fortgeschritten wie VTune. Es gibt auch Sleepy , die sehr einfach ist, aber macht die Arbeit in vielen Fällen.

Andere Tipps

Sehr Sleepy ist ein C / C ++ CPU-Profiler für Windows-Systeme (kostenlos).
cppcheck ist eine statische C / C ++ CPU-Profiler für Windows-Systeme (kostenlos).

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

Disclaimer:. Ich schrieb dieses

Es gibt eine Instrumentierung (funktions genau) Profiler für MS VC 7.1 und höher genannt Mikroprofiler. Sie können es hier (x64) oder hier (x86) . Es erfordert keine Änderungen oder Ergänzungen , um Ihren Code und Funktion Statistiken mit Anrufern und Angerufenen in Echtzeit , ohne die Notwendigkeit der Schließung Anwendung zur Anzeige der Lage / Stoppen des Profilierungsprozess.

Die nahtlose Integration mit Visual Studio, so dass Sie leicht / deaktivieren Profilierung für ein Projekt aktivieren. Es ist auch möglich, es auf der sauberen Maschine zu installieren, muss er nur die Symbolinformation zusammen mit dem ausführbaren profilierenden befindet.

Dieses Tool ist nützlich, wenn statistische Annäherung von der Probenahme Profilometer wie sehr schläfrig nicht ausreichend ist.

Raue Vergleich zeigt, dass es schlägt AQTime (wenn es in instrumentiert, Funktionsebene Lauf aufgerufen wird). Die folgende Programm (vollständige Optimierung, inlining deaktiviert) läuft dreimal schneller mit Mikro-Profiler Anzeigen von Ergebnissen in Echtzeit, als mit AQTime einfach sammeln Statistik:

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 von Windows Performance Toolkit .

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

Neu ist Shiny .

Ich empfehle von Windows Performance Toolkit (WPT) oder Xperf

Die Befehlszeile xperf Kommandozeilen-Tool Datensätze Event für Windows (ETW) Protokolle Tracing, die über die GUI Xperfview Tool analysiert werden kann.

Mit stacktrace Befehlszeile arguement hat sich als ein wertvolles Instrument für meine Firma sein, wie es Profile und Fehler beseitigt Engpässe. Eines der spannendsten Dinge ist, dass die WPT kann sogar auf der ehrwürdige Windows XP in jeder Umgebung installiert werden.

Ein Windows 8 die Windows-Performance Analyzer auf ein noch höheres Niveau Xperf nimmt.

Die harten Zahlen und in ETW-Protokollen zur Verfügung gestellt Statistiken sind einmalig im Detail mit Ausnahme von Visual Studio Profiler (2010/2012), die auch groß, aber nicht frei AFAIK.

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

Ich benutze AQTime, es ist eine der besten Profilierwerkzeuge, die ich je benutzt habe. Es ist nicht kostenlos, aber Sie können eine 30-Tage-Testversion erhalten, wenn Sie also auf eine Optimierung und Profilierung planen nur ein Projekt und 30 Tage genug für Sie ist, dann würde ich mit dieser Anwendung empfehlen. ( http://www.automatedqa.com/downloads/aqtime/index.asp)

Bitte versuchen Sie meinen Profiler genannt cRunWatch. Es ist nur zwei Dateien, so ist es einfach, mit Ihren Projekten zu integrieren und erfordert das Hinzufügen genau eine Zeile Instrument ein Stück Code.

http://ravenspoint.wordpress.com/2010/06/16/timing /

Benötigt die Boost-Bibliothek.

Ich habe Luke Stackwalker und es hat den Job für mein Visual Studio-Projekt.

Weitere interessante Projekte sind:

Ich habe verwendet „Truetime -. Teil seit Jahren DevPartner-Suite von Compuware Es gibt eine [kostenlose Version] (man könnte versuchen, Compuware DevPartner Performance Analysis Community Edition.) Verfügbar

.

Ich verwende VSPerfMon, die die Standalone Visual Studio Profiler ist. Ich schrieb mir ein GUI-Tool, um es auszuführen und Blick auf die Ergebnisse.

http://code.google.com/p/vsptree/

Sie EmbeddedProfiler verwenden können, ist es kostenlos für Linux und Windwos.

Der Profiler ist aufdringlich (durch Funktionalität), aber es doens't keine Code-Änderungen erforderlich. Fügen Sie einfach einen bestimmten Compiler-Flag (-finstrument-functios für gcc / MinGW oder / GH für MSVC) und verknüpfen Sie die Bibliothek des Profiler. Es kann Ihnen einen vollständigen Aufrufbaum zur Verfügung stellen oder einfach nur eine funciton Liste. Es verfügt über einen eigenen Analysator GUI.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top