multithreaded profiling

Jeff Sturm jsturm@detroit.appnet.com
Sun Jul 30 13:07:00 GMT 2000


Anthony Green wrote:
> I haven't looked at it yet, but this may be useful to us...
...
> http://opensource.corel.com/cprof.html

cprof didn't build for me.  If anybody else tries it, note you'll need
libelf installed first, and must build without wine support.  The
configure script fails to detect these.

After patching configure, I get link errors for reasons that aren't
obvious (to me, at least).  If anybody else gets it to work, let me know
what you did...

BTW I find hardware-based profiling is much more effective than
instrumented code.  There's a package called IProbe
<uri: http://www.alphalinux.org/iprobe/ > which uses hardware counters and
events to profile execution times, loads/stores, cache misses, etc. 
IProbe works on multithreaded code, doesn't require recompiling and even
profiles kernel execution.  It also has under 5% impact on total
execution times, whereas "gcc -pg" can slow execution by 30% or more.

Unfortunately, IProbe is for Alpha only; I don't know if anything
similar exists for x86.  Still, code optimizations that help one
platform seldom hurt performance on others (maybe those cheap Multias
are good for something after all).  Other non-x86 platforms may have
similar tools freely available.

Jeff


More information about the Java mailing list