Difference between revisions of "Speedprof"
From Apache OpenOffice Wiki
(→patch it) |
(→patch it) |
||
Line 14: | Line 14: | ||
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; [http://go-oo.org/ooo-build/patches/test/memprof-nptl.diff patch]. | 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; [http://go-oo.org/ooo-build/patches/test/memprof-nptl.diff patch]. | ||
+ | <pre> | ||
+ | patch -p0 < memprof-nptl.diff | ||
+ | </pre> | ||
=== install it === | === install it === |
Revision as of 09:56, 5 June 2006
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:anonymous@anoncvs.gnome.org:/cvs/gnome' cvs login cvs -z3 co memprof
patch it
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
install it
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.
downsides
- 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.