Programmgesteuertes Starten des Java HPROF-Profilers

8

Ich versuche, eine Java-Anwendung selektiv zu überwachen / zu profilieren, wenn bestimmte Laufzeitbedingungen erfüllt sind. Ich bin bereits in der Lage, den Heap on-the-fly mit dem HotSpotDiagnosticMXBean , was sehr nützlich war.

Ich versuche jetzt, etwas Ähnliches mit CPU-Profiling zu tun, in der Hoffnung, bestimmte Code-Pfade effektiver zu erreichen. Ich habe einige Erfahrung mit der Befehlszeile HPROF-Schnittstelle und der NetBeans Profiler, aber beide müssen vorher gestartet werden.

Gibt es eine Möglichkeit, den HPROF Profiler programmatisch aus einer laufenden Anwendung zu aktivieren? Vorzugsweise etwas, mit dem ich den Profiling-Prozess beliebig starten und stoppen könnte?

    
thkala 22.10.2011, 23:30
quelle

1 Antwort

1

Gemäß der JVMTI-Dokumentation , nativen Agentenbibliotheken Wie hprof muss sehr früh während der JVM-Initialisierung geladen werden, bevor irgendein Bytecode ausgeführt wird. Also nein, es ist nicht möglich, dies on-the-fly zu tun.

Eine Alternative könnte sein, den Java-Prozess mit modifizierten JVM-Parametern innerhalb der Hauptfunktion neu zu starten, obwohl dies nicht trivial ist.

    
Soulman 22.07.2012, 10:52
quelle

Tags und Links