JFluid is a profiler that uses bytecode instrumentation and, unlike most of the other tools, can perform it on-the-fly, while the profiled application is running. This is enabled by the code hotswapping technology in the experimental version of Sun's HotSpot JVM that JFluid uses. JFluid allows you to instrument and de-instrument limited portions of a running application, and/or turn on and off different kinds of profiling (CPU, memory) at run time.
The main added features in this version is the object liveness analysis and initial support for memory leak debugging. The latter is supposed to scale much better than other existing solutions, since it does not rely on "heap snapshots", which may be problematic for large applications.
There have also been some usability improvements and bug fixes since the previous version. For more information and free downloads, see http://research.sun.com/projects/jfluid