it-swarm-eu.dev

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

Ich suche einen Profiler, um den Engpass in meinem C++ - Code zu finden. Ich möchte ein kostenloses, nicht aufdringliches und gutes Profilierungswerkzeug finden. Ich bin Spieleentwickler und benutze PIX für Xbox 360. Ich fand es sehr gut, aber es ist nicht kostenlos. Ich kenne den Intel VTune , aber es ist auch nicht kostenlos.

218
ugasoft

CodeXL hat jetzt das End Of Line'd abgelöst AMD Code Analyst und beide sind kostenlos, aber nicht so fortgeschritten wie VTune. Es gibt auch schläfrig , was sehr einfach ist, aber in vielen Fällen die Arbeit erledigt.

132
yrp

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).

59
lsalamon

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

Haftungsausschluss: Ich habe das geschrieben.

34
pauldoo

Es gibt einen instrumentierten (funktionsgenauen) Profiler für MS VC 7.1 und höher mit dem Namen MicroProfiler. Sie erhalten ihn hier (x64) oder hier ( x86) . Es erfordert keine Änderungen oder Ergänzungen zu Ihrem Code und ist in der Lage, Funktionsstatistiken mit Anrufern und Angerufenen in Echtzeit anzuzeigen = ohne die Anwendung zu schließen/den Profilierungsprozess zu stoppen.

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 der bereinigten Maschine zu installieren. Es müssen lediglich die Symbolinformationen zusammen mit der ausführbaren Datei gefunden werden, für die ein Profil erstellt wird.

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 Instrumentierung, Funktionslevel-Run 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 einfach 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());
}
17
Arty

Microsoft hat das Windows Performance Toolkit .

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

10
epotter

Ein neuer Zusatz ist Shiny .

Für den Fall, dass Sie nicht mehr weiterkommen möchten

7
Buggieboy

Ich empfehle dringend Windows Performance Toolkit (WPT) oder [~ # ~] xperf [~ # ~]

Das Befehlszeilentool xperf zeichnet Ereignisablaufverfolgungsprotokolle für Windows (ETW) auf, die mit dem GUI-Tool xperfview analysiert werden können.

Die Verwendung von Stacktrace-Befehlszeilenargumentation hat sich als unschätzbares Werkzeug für mein Unternehmen erwiesen, da es Engpässe aufzeigt und behebt. Eines der überzeugendsten Dinge ist, dass WPT in jeder Umgebung installiert werden kann, auch unter Windows XP .

Unter Windows 8 bringt der Windows Performance Analyzer xperf auf ein noch höheres Niveau.

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

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

5
MW_dev

Ich benutze AQTime, es ist eines der besten Profiling-Tools, die ich je benutzt habe. Es ist nicht kostenlos, aber Sie können eine 30-Tage-Testversion erhalten. Wenn Sie also nur ein Projekt optimieren und ein Profil erstellen 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 )

3
dudico

Bitte versuchen Sie es mit meinem Profiler namens cRunWatch. Da es sich nur um zwei Dateien handelt, ist die Integration in Ihre Projekte einfach und es ist erforderlich, genau eine Zeile hinzuzufügen, um einen Code zu instrumentieren.

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

Benötigt die Boost-Bibliothek.

2
ravenspoint

Ich habe Luke Stackwalker verwendet und es hat die Arbeit für mein Visual Studio-Projekt erledigt.

Weitere interessante Projekte sind:

1
INS

Ich benutze "TrueTime - ein Teil der DevPartner-Suite von Compuware seit Jahren. Es gibt eine [kostenlose Version] (Sie könnten versuchen, Compuware DevPartner Performance Analysis Community Edition.) Zur Verfügung.

0
Harold Ekstrom

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

Der Profiler ist aufdringlich (aufgrund seiner 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 zur Verfügung stellen. Es hat eine eigene Analyzer-GUI.

0
Mi-La