Profiling the Profiler
This week, research.sun.com is profiling (pun intended) Misha Dmitriev, the project lead for JFluid, the Java profiler. JFluid is one of my favorite Java tools. It will profile a Java application without the usual inaccuracies. JFluid uses a modified JVM that can add instrumentation to your class files when you wish to profile them. This allows you to easily enable and disable profiling on a method by method basis, thus avoiding the usual problems with some profilers that vastly slow down the execution of your program. JFluid directly instruments your methods instead of relying on sampling (like most other profilers do). Sampling profilers are about as accurate as the current presidential polls. Since they only take periodic samples of your application, sampling profilers are likely to misrepresent the overall profile. By directly adding instrumentation to your classes, JFluid can give you a 100% accurate representation of where your program is spending its time.
Jfluid is being incorporated into the next version of NetBeans. There's a good overview of JFluid at JDJ here: JFluid: A New Way to Profile Java Applications