We are using JProfiler and are quite satisfied. Don't have much experience with other products, though.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Joined: Sep 19, 2006
In your opinion how is this product for analyzing static code, and dependencies?
Originally posted by Steve Chambers: In your opinion how is this product for analyzing static code, and dependencies?
Not at all. It's a profiler, not a static code analyzer.
Perhaps it would help if you told us what you actually want to do with the tool...
Joined: Sep 19, 2006
I want a tool to profile my programs (memory, garbage collection). Along with this I also want to do static code analysis. Is there a tool out there where I can do both of these things or do I have to purchase seperate tools?
I would recommend Quest JProbe Suite. They've a memory debugger to check for memory leaks & a profiler to find bottlenecks. One thing to note is that your system needs to be powerful enough, especially if you're working on J2EE.
Steve, Thanks for the clarification. In the development environment, you'll probably run it in single user mode, and can afford to take the hit of JVMPI/JVMTI. Something which integrates well with your IDE would work well, like NetBeans IDE Profiler.
When running in a test environment, the overhead of JVMPI/AOP based profilers becomes significant, specially when running a multi-user load test. When you are willing to live with 20-30% overhead, you can try byte code instrumentation. For true scalability tests, where you want the overhead of the analysis to be below 1%, you could consider Auptyma's Java Application Monitor.
With bytecode instrumentation, you can get lower overheads but you'll need to get experts who'll only be focused on optimizing the instrumentation points without sacrificing visibility.