Difference between revisions of "Speedprof"

From Apache OpenOffice Wiki
Jump to: navigation, search
(create)
 
Line 1: Line 1:
 
=== what is it ===
 
=== 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 prevents 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.
+
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 ===
 
=== how to get it ===

Revision as of 10:43, 22 November 2005

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

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.

   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.
Personal tools