24 Stimmen

Angemessener Profiler für Windows?

Hat Windows irgendwelche anständigen Stichproben (z. B. nicht instrumentierende) Profiler zur Verfügung? Vorzugsweise etwas Ähnliches wie Shark auf MacOS, obwohl ich bereit bin zu akzeptieren, dass ich für einen solchen Profiler auf Windows bezahlen muss.

Ich habe den Profiler in VS Team Suite ausprobiert und war nicht sonderlich beeindruckt, und ich frage mich, ob es noch andere gute Profiler gibt.

[Bearbeiten: Erk, ich vergaß zu sagen, dies ist für C/C++, anstatt .NET - sorry für jede Verwirrung]

0 Stimmen

Ich würde mich auch über Vorschläge für Profiler freuen, die nicht so eng an VS gebunden sind, d.h. solche, die eigenständig laufen können und vorzugsweise mehr Debugging-Informationsformate als pdb verwenden.

16voto

user15071 Punkte 3251

Für Windows können Sie das kostenlose Xperf die mit dem Windows-SDK geliefert wird. Es verwendet gesampelte Profile, hat einige nützliche UI, und erfordert keine Instrumentierung. Ziemlich nützlich, um Leistungsprobleme aufzuspüren. Sie können Fragen beantworten wie:

Wer verbraucht die meiste CPU? Unter Verwendung von Aufrufstapeln bis zum Funktionsnamen aufschlüsseln.

Wer weist den meisten Speicherplatz zu?

Ausstehende Speicherzuweisungen (Lecks)

Wer führt die meisten Registerabfragen durch?

Schreibvorgänge auf der Festplatte? usw.

12voto

Naaff Punkte 9045

Ich weiß, ich füge meine Antwort Monate nach der Frage hinzu, aber ich dachte, ich würde auf einen anständigen Open-Source-Profiler hinweisen: Sehr schläfrig .

Es hat nicht die Anzahl an Funktionen, die einige der zuvor erwähnten Profiler haben, aber es ist ein ziemlich respektabler Sampling-Profiler, der in den meisten Situationen sehr gut funktioniert.

11voto

Dickon Reed Punkte 3465

Intel VTune ist gut und wird nicht instrumentalisiert. Wir haben eine ganze Reihe von Profilern für Windows evaluiert, und dieser war der beste für die Arbeit mit Treibercode (obwohl er auch nicht verwalteten Code auf Benutzerebene verarbeitet). Eine besondere Stärke ist, dass es alle Leistungszähler des Intel-Prozessors ausliest, so dass Sie ein gutes Verständnis dafür bekommen, warum Ihr Code langsam läuft, und es war nützlich, um Prefetch-Anweisungen in unseren Code einzubauen und das Datenlayout so zu gestalten, dass es mit den Cache-Zeilen und der Art und Weise, wie Cache-Zeilen in Multi-Core-Systemen ungültig werden, gut funktioniert.

Es handelt sich um ein kommerzielles Produkt, und ich muss sagen, es ist nicht die einfachste Benutzeroberfläche der Welt.

6voto

Die in Sente Punkte 9197

Der CodeAnalyst von AMD ist KOSTENLOS aquí

4voto

Greg Whitfield Punkte 5531

Wir verwenden sowohl VTune als auch AQTime, und ich kann mich für beide verbürgen. Was für Sie am besten funktioniert, hängt von Ihren Bedürfnissen ab. Für beide gibt es kostenlose Testversionen - ich empfehle Ihnen, sie auszuprobieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X