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.

3voto

bk1e Punkte 23191

En Windows-Treiber-Kit enthält einen nicht-instrumentierenden Benutzer/Kernel-Profiler namens "Kernrate" . Es scheint nützlich zu sein für die Profilerstellung von Multiprozess-Anwendungen, Anwendungen, die die meiste Zeit im Kernel verbringen, und Gerätetreiber (natürlich). Es ist auch verfügbar in der KrView (Kernrate-Viewer) y Windows Server 2003 Ressourcenkit Werkzeuge Pakete.

Kernrate funktioniert unter Windows 2000 und höher (im Gegensatz zu Xperf, das Vista / Server 2008 benötigt). Es ist kommandozeilenbasiert und die Dokumentation hat eine etwas einschüchternde Liste von Optionen. Ich bin mir nicht sicher, ob es Aufrufstapel oder nur den Programmzähler aufzeichnen kann. Wenn Sie einen Symbolserver verwenden, stellen Sie sicher, dass Sie eine aktuelle dbghelp.dll y symsrv.dll in demselben Verzeichnis wie kernrate.exe um zu verhindern, dass es die alte Version von dbghelp.dll die installiert ist in %SystemRoot%\system32 .

2voto

Jon Trauntvein Punkte 4261

Ich habe Intels vtune vor etwa zwei Jahren bei einem ziemlich großen Projekt ausprobiert. Damals handelte es sich um einen instrumentierenden Profiler, und es dauerte so lange, bis die DLL, die ich zu profilieren versuchte, instrumentiert war, dass ich nach einer Stunde schließlich die Geduld verlor.

Ein Tool, mit dem ich recht gute Erfahrungen gemacht habe und das ich sehr empfehlen würde, ist das von AQTime . Es bietet nicht nur hervorragende Ressourcen für die Leistungsprofilerstellung, sondern auch eine sehr gute Speicherprofilerstellung, die mir beim Aufspüren von Speicherlecks eine große Hilfe war.

1voto

SamB Punkte 8630

Luke Stackwalker scheint vielversprechend zu sein - es ist nicht so ausgefeilt, wie ich es gerne hätte, aber es ist Open Source und es tut etwas, das dem, was @Mike Dunlavey immer wieder sagt, dass wir tun sollten, sehr nahe kommt. (Natürlich versucht es dann, alles in die typisch wenig hilfreichen Anrufdiagramme zu pressen, die Mike so sehr vermisst, aber das sollte mit dem Quellcode als Verbündeten nicht allzu schwer zu beheben sein).

Es scheint sogar die Zeit zu zählen, die man im Kernel wartet, soweit ich das beurteilen kann...

-3voto

Jonathan Allen Punkte 65707

Ich bin nicht sicher, was ein nicht-instrumentierender Profiler ist, aber ich kann sagen, dass ich für .NET den ANTS Profiler von RedGate liebe. Version 3 schlägt die MS-Version in Sachen Benutzerfreundlichkeit und Version 4, die beliebige Zeitscheiben erlaubt, lässt MS wie einen Witz aussehen.

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