what is it
Speedprof is an LD_PRELOAD based itimer (or hard real-time, or builtin CPU timer) based snapshot profiler. It samples at regular intervals (tweakable by reading the code ;-) and then presents a rather sexy data mining view so you can wind back full stack information - what function called what and when, self & cumulative times down trace paths etc.
how to get it
Checkout 'memprof' from GNOME CVS:
export CVSROOT=':pserver:email@example.com:/cvs/gnome' cvs login cvs -z3 co -r sled-fixes memprof
Then if you're on a reasonably recent system you need to patch it to use new TLS / NPTL threading support instead of the older linux pthreads assumptions; patch.
patch -p0 < memprof-nptl.diff
configure make make install
how to use it
speedprof ./soffice.bin -writer
Of course, the most useful mode is to use the 'reset' button - ie. get OO.o going to the state you're interested in. Hit reset - do something slow - hit 'Profile' and wander the trace.
- sometimes crashes the app - but hey, sometimes the app crashes under it's own steam too - hard to know whom to blame.
- doesn't work well with old systems (know to work well on SL10.0 with the patch eg.)
- doesn't like very long C++ symbols much - makes the columns somewhat unpleasant to use, needs some app tweakage.