2009-07-10 17 views
0

ich IBMs Jvm (JDK 5.0) mit den Optionen renne -Xrunhprof: format = bWie CPU-Overhead durch die an einen Jvm angebracht Hprof Profiler eingeführt messen

Ich bin mir bewusst, dass Jvm instrumentiert mit hprof beinhaltet eine Leistungsstrafe. Ich möchte diese Straflosigkeit quantifizieren. Ich weiß, dass eine Möglichkeit, dies zu tun, ist, das Profilprofil hprof zu entfernen und die Anwendung auszuführen und die CPU-Auslastung der Anwendung in beiden Fällen zu vergleichen. Aber diese Option steht mir nicht zur Verfügung

Ich habe eine laufende Anwendung, die mit hprof instrumentiert ist. Ich muss herausfinden, wieviel Prozent der CPU von dem Prof Profiter selbst verbraucht wird.

Antwort

1

Ich habe keine harten Zahlen, aber ich habe immer daran gedacht, unter hprof zu laufen, um eine Größenordnung (oder zwei) langsamer als ohne zu sein. Es ist sehr abhängig von dem, was Sie verfolgen: größere Stack-Frames zum Beispiel werden den Overhead erhöhen.

Aber unabhängig davon ist es definitiv nicht etwas, das Sie in etwas anderem als einer streng kontrollierten Testumgebung ausführen möchten.

+0

Ja und nein - es hängt völlig davon ab, ob Messungen durch Stichproben (schnell) oder durch Zählen (langsam) durchgeführt werden. Sampling verursacht oft einen geringen Overhead (wie + 50% Ausführungszeit); das Zählen kann eine Größenordnung haben (+ 500%). Zumindest war dies meine Erfahrung. – StaxMan

1

Sie sagen nicht, dass Sie ein Leistungsproblem haben, das Sie durch Profiling lösen möchten. Aber auf die Chance, dass Sie tun, you might try this.