Profiler, der an laufende Prozesse angehängt wird?

8

Ich brauche einen guten Profiler für Windows und Linux (sie müssen nicht derselbe sein; separate Empfehlungen für jedes Betriebssystem sind in Ordnung), die an einen bereits laufenden Prozess angehängt werden können, der nicht in einem "speziellen" kompiliert wurde. Weise und geben Sie mir Statistiken darüber, welche Funktionen der Prozess die meiste Zeit in Anspruch nimmt. Ich verfüge über lang laufenden wissenschaftlichen Code und möchte Snapshots davon erstellen, wo er die meiste Zeit in verschiedenen Phasen der Ausführung verbringt, und in der Lage, die Ergebnisse zu erhalten, ohne das gesamte Programm starten zu müssen, um zu beenden .

Der Compiler, den ich verwende (Digital Mars D), wird mit einem Instrumentierungsprofiler geliefert. Es ist viel zu langsam für die Jobs, die ich leite. Da ich nur daran interessiert bin, größere Engpässe zu identifizieren, möchte ich etwas, das schnell und einfach zu verwenden ist, auch wenn es nur ungefähr genau ist. Im Idealfall sollte es auch in der Lage sein, alle Threads gleichzeitig zu profilieren und mir einen Gesamtbericht zu geben.

Unter Linux habe ich GDB als Sample-Profiler eines armen Mannes benutzt (meine App einige Male pausieren und sehen, in welcher Funktion sie sich befindet). Im Grunde ist das eine automatisierte Version von der ich suche.

Eine letzte Voraussetzung: Unter Linux muss es einfach zu installieren sein ohne Root-Rechte, da ich es auf einem Server ausführen werde, auf den ich keinen Root-Zugriff habe.

Edit: Während der Code in D geschrieben wurde, ist Ds Kompilierungsmodell usw. ähnlich genug zu C, dass Tools, die für C geschrieben wurden, gut funktionieren sollten.

    
dsimcha 21.02.2011, 21:49
quelle

5 Antworten

16

Wenn Sie einen relativ neuen Kernel haben, können Sie perf :

verwenden %Vor%

... dann perf report , sobald Sie genug Proben gesammelt haben.

    
caf 21.02.2011 23:29
quelle
3

Sie suchen nach oprofile:

Ссылка

    
R.. 21.02.2011 22:24
quelle
2

Versuchen Sie unter Linux Zoom . Auch für grobe Arbeiten ist lsstack nützlich, um Engpässe zu finden.

    
Mike Dunlavey 22.02.2011 01:42
quelle
2

Ich habe es nicht versucht, aber xProf wurde speziell für D geschrieben. Es ist ein statistischer Profiler.

    
Peter Alexander 22.02.2011 08:08
quelle
0

Windows Performance Recorder (WPR) und Windows Performance Analyzer (WPA) sind die besten Profilerstellungswerkzeuge für Windows 8 und höher. Xperf funktioniert wirklich gut unter Windows 7.

    
Arun Kaushal 24.02.2018 06:27
quelle

Tags und Links