AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Profilen mit z.B. hprof

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German)
View previous topic :: View next topic  
Author Message
Georg Sauthoff
Guest





PostPosted: Sat May 12, 2007 2:09 am    Post subject: Profilen mit z.B. hprof Reply with quote



Hi,

wie profile't ihr ueberhaupt eure Java-Programme?

Ich habe mir bisher 'hprof' (-agentlib:hprof) angeschaut.

Mein Test-Programm hat eine Laufzeit von ~30 Sekunden unter normalen
Umstaenden. Mit den Default-Optionen von hprof hat das Programm dann
eine Laufzeit von 30 Minuten - wobei in dem .txt Ouput noch keine
Statistik ueber Methodenaufrufe etc. enthalten ist.

Mit cpu=times beobachte ich dann eine Laufzeit von 117 Minuten (alles auf
einem 2.3 GHZ Rechner) (in der Sun Doku stand etwas von bis Faktor 10
gewoehnlich ...). Ach, und ausserdem enthaelt der Ouput negative
'Zeit'angaben (total = -1660662325) ...

cpu=samples ist da schon brauchbarer, da der Overhead nur
wenige Sekunden ausmacht.

Nun werte ich den hprof-Output via awk aus, z.B.
awk ' /reflect|Field/ { r += $2; print $0; } END { print "Sum: ", r; }'
hprof_output_ohne_header_bzw_footer
wenn ich wissen moechte wieviel Zeit mein Programm anteilig fuer
Reflection-Gedoens aufgewendet hat.

Soweit so gut. Nur wie zuverlaessig ist hprof ueberhaupt? Denn wenn ich
nun die Ergebnisse von cpu=times mit cpu=samples vergleiche, dann
sind die Angaben schon so unterschiedlich, das man keinen Zusammenhang
erkennen kann. Wobei ich mich eher auf cpu=samples verlassen wuerde, da
cpu=times so extrem intrusive ist, dass man sich etwas wundert.

Ein andere Sache: Wie sieht es mit ge'inline'ten Methoden aus; werden
die so beruecksicht, das sie zur Methode, in der sie ge'inline't wurden,
gezaehlt werden, oder wird die Zeit als Zeit fuer ein 'fiktiver'
Methodenaufruf berechnet? Oder wird gar nicht mehr von der VM just-in-time
ge'inline't (falls das bisher geschah)?

Gruss
Georg Sauthoff
Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.