This is the mail archive of the
java-discuss@sources.redhat.com
mailing list for the Java project.
Re: multithreaded profiling
- To: "green at cygnus dot com" <green at cygnus dot com>
- Subject: Re: multithreaded profiling
- From: Jeff Sturm <jsturm at detroit dot appnet dot com>
- Date: Sun, 30 Jul 2000 16:04:42 -0400
- CC: "'java-discuss at sources dot redhat dot com'" <java-discuss at sources dot redhat dot com>
- Organization: AppNet
- References: <01BFF941.F88C54C0.green@cygnus.com>
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