Re: [Sablevm-developer] profiling SableVM?
Brought to you by:
egagnon
From: Chris P. <chr...@ma...> - 2004-02-14 19:49:02
|
Chris Pickett wrote: > Hi, > > Has anybody had any luck with profiling SableVM? I need to do this to > cut down on the overhead of my speculative multithreading work, because > currently benchmarks take too long to execute for an efficient > write-compile-test-debug cycle. So, after more trying with gprof, OProfile, and FunctionCheck ... I spoke to Clark, and he soon found qprof, released under the GPL by HP (Google finds different things for different people). It works great! Even with just a simple install, I get: $ qprof_start $ sablevm-chris-switch-spmt-debug -Y DmdNoStrings random2000.dg Number of components: 399 qprof: /home/research/ccl/cpicke/temp/bin/sablevm-chris-switch-spmt-debug: 5710 samples, 5710 counts [0x4000dea4] 2 ( 0%) libsablevm.so.1 286 ( 5%) libsablevm.so.1(_svmf_buffer_create) 2 ( 0%) libsablevm.so.1(_svmf_buffer_validate) 40 ( 1%) libsablevm.so.1(_svmf_buffer_commit) 51 ( 1%) libsablevm.so.1(_svmf_buffer_destroy) 4 ( 0%) libsablevm.so.1(_svmf_buffer_status_ok) 1 ( 0%) libsablevm.so.1(_svmf_predictor_read_jint) 2 ( 0%) libsablevm.so.1(_svmf_predictor_write_jint) 29 ( 1%) libpthread.so.0(__pthread_mutex_trylock) 8 ( 0%) libpthread.so.0(__pthread_mutex_lock) 4 ( 0%) libpthread.so.0(__pthread_mutex_unlock) 40 ( 1%) libc.so.6(malloc) 127 ( 2%) libc.so.6(__libc_free) 29 ( 1%) libc.so.6(calloc) 17 ( 0%) libc.so.6(__default_morecore) 4 ( 0%) libc.so.6(strncpy) 1 ( 0%) libc.so.6(memset) 117 ( 2%) libc.so.6(memcpy) 4804 ( 84%) libc.so.6(__open) 3 ( 0%) libc.so.6(brk) 136 ( 2%) libc.so.6(sbrk) 3 ( 0%) $ qprof_stop Which is just the kind of thing I was looking for! (this is with qprof-0.5 and libunwind-0.96, both available from HP -- you need to put a symlink to or extract libunwind-0.96 in the qprof-0.5 directory for qprof's make to enable libunwind functionality) I am pretty sure I can get more detailed info if I set things up; I'm just sending this mail to report that we have a usable C profiler now. Cheers, Chris |