Ich habe in der Vergangenheit einige Profiler verwendet und fand sie nie besonders einfach. Vielleicht habe ich schlechte ausgewählt, vielleicht wusste ich nicht wirklich, was ich erwartet hatte! Aber ich würde gerne wissen, ob es “Standard”-Profiler gibt, die einfach vorbeikommen und funktionieren? Ich glaube nicht, dass ich extrem detaillierte Berichte brauche, nur um große Schwachstellen aufzuspüren. An dieser Stelle ist mir die Benutzerfreundlichkeit wichtiger.
Es ist VC++ 2008, das wir verwenden (ich verwende persönlich die Standard Edition). Ich nehme nicht an, dass es dafür Tools in der IDE gibt, ich kann keine sehen, wenn ich mir die Hauptmenüs ansehe?

Michael myers
Ich schlage eine sehr einfache Methode vor (die ich durch das Lesen von Mike Dunlaveys Posts auf SO gelernt habe):
Unterbrechen Sie einfach das Programm.
Führen Sie dies mehrmals durch, um eine angemessene Probe zu erhalten. Wenn eine bestimmte Funktion die Hälfte der Ausführungszeit Ihres Programms beansprucht, stehen die Chancen gut, dass Sie sie sehr schnell auf frischer Tat ertappen.
Wenn Sie die Leistung dieser Funktion um 50 % verbessern, haben Sie die Gesamtausführungszeit nur um 25 % verbessert. Und wenn Sie feststellen, dass es überhaupt nicht benötigt wird (ich habe in der kurzen Zeit, in der ich diese Methode verwende, mehrere solcher Fälle gefunden), haben Sie die Ausführungszeit nur halbiert.
Ich muss gestehen, dass ich anfangs ziemlich skeptisch gegenüber der Wirksamkeit dieses Ansatzes war, aber nachdem ich es ein paar Wochen lang ausprobiert habe, bin ich begeistert.

Brian R. Bondy
VS eingebaut:
Wenn Sie eine Team Edition haben, können Sie die verwenden Visual Studio-Profiler.
Andere Optionen:
Ansonsten schau mal in diesen Thread.
Einfach selbst erstellen:
Ich persönlich verwende eine intern erstellte, die auf der Win32-API basiert QueryPerformanceCounter. Sie können etwas nettes und einfach zu verwendendes innerhalb von hundert Zeilen Code oder weniger erstellen.
Der Vorgang ist einfach: Erstellen Sie oben in jeder Funktion, die Sie profilieren möchten, ein Makro mit dem Namen PROFILE_FUNC(), das zu den intern verwalteten Statistiken hinzugefügt wird. Dann haben Sie ein weiteres Makro namens PROFILE_DUMP(), das die Ausgaben in ein Textdokument ausgibt.
PROFILE_FUNC() erstellt ein Objekt, das RAII verwendet, um die Zeitspanne bis zur Zerstörung des Objekts zu protokollieren. Sowohl der Konstruktor dieses RAII-Objekts als auch der Destruktor rufen auf QueryPerformanceCounter
. Sie könnten diese Zeilen auch in Ihrem Code belassen und das Verhalten über a steuern #define PROFILING_ON
Ich habe immer AMD CodeAnalyst verwendet, ich finde es ziemlich einfach zu bedienen und liefert interessante Ergebnisse. Ich habe immer das zeitbasierte Profil verwendet, in dem ich festgestellt habe, dass es gut mit den Debug-Informationen meiner Apps zusammenarbeitet, sodass ich herausfinden kann, wo die Zeit auf der Ebene von Prozeduren, C++-Anweisungen und einzelnen Assembler-Anweisungen aufgewendet wird.
ich benutzte lt. Prof in der Vergangenheit für einen schnellen Überblick über meine C++-App. Es funktioniert ziemlich einfach und läuft mit einem kompilierten Programm, benötigt keine Quellcode-Hooks oder Tweaks. Es gibt eine Testversion, glaube ich.
Eine sehr einfache (und kostenlose) Methode zur Profilerstellung besteht darin, die Windows-Debugger (cdb/windbg) zu installieren, einen bp für den Ort von Interesse zu setzen und die wt
Befehl (“Trace and Watch Data”). Kasse MSDN Für mehr Information.
9145200cookie-checkWas ist ein sehr einfacher C++-Profiler (VC++)?yes
siehe stackoverflow.com/questions/67554/…
– Sajad Bahmani
12. April 2010 um 19:18 Uhr