What's new in JProfiler 5.0

Change release:

Please see the change log for a detailed list of changes.

JProfiler 5.0 introduces the following notable new features:

A powerful facility of trigger and actions has been added. With triggers, you can automatically react to certain events in the JVM and perform a number of profiling-related actions. Triggers and actions are defined in the session settings and can be used for profiling with the JProfiler GUI as well as for offline profiling.
Screenshot
The list of available actions depends on the trigger type. Most actions are configurable and dispatch commands to the profiling agent.
Screenshot
Selecting methods for method triggers is most easily done in the call tree and hot spots views where you can create a new method trigger or modify an existing method trigger based on the currently selected node.
Screenshot
Trigger configurations can be saved as trigger sets, so they are easily reusable for other sessions.
Screenshot
JProfiler can now read HPROF memory snapshots. With recent patch levels of Sun Java 1.4 and Java 5 JREs, you can save HPROF memory snapshots with the -XX:+HeapDumpOnOutOfMemoryError VM parameter when an OutOfMemoryError occurs. In this way, you can analyze memory leaks from JVMs that were not profiled with JProfiler. Starting with Java 5, HPROF memory snapshots can also be saved from JConsole. In Java 6, you can locally attach with JConsole to every Java process without command line modifications, so there is always a way to analyze memory consumption when a Java application behaves badly.
When viewing an HPROF memory snapshot, only certain parts of the heap walker are available, other sections are grayed out.
Screenshot
When profiling with Java 6, you can also save an HPROF memory snapshot from the JProfiler GUI. This is of interest if there is very little physical memory left. The new trigger system also provides an action to save an HPROF snapshot.
Screenshot
The VM telemetries have been overhauled. There is additional data that has become available in Java 5 and Java 6 that is now displayed by JProfiler. The Memory VM telemetry now displays a list of memory pool in a drop-down list at the top, maximum pool sizes are displayed where available:
Screenshot
The Recorded Throughput VM telemetry now displays how many recorded objects are created and garbage collected per second:
Screenshot
The GC Activity VM telemetry displays how much time was spent in the garbage collector. The various GC types as exposed by the JVM can be viewed separately:
Screenshot
The Threads VM telemetry now resolves all thread states separately:
Screenshot
The CPU Load VM telemetry displays the percentage of the total CPU time that is consumed by the profiled application. There is also a trigger event type that is fired when a CPU load threshold is reached.
Screenshot
A call tracer view has been added. The call tracer shows you the chronological sequence of all recorded method calls. The call traces are grouped by thread, package and class so that you can easily find specific areas of interest. It is possible to hide threads, packages, classes or single methods in order to trim the amount of information to something that can be analyzed more easily. This view is useful for analyzing use cases where multiple threads are involved or analyze the control flow in detail from a perspective that cannot be achieved with a debugger.
Screenshot
The session settings have been redesigned. All session settings are now accessible in a single dialog. The method call collection filters have been rewritten. You can now specify a list of inclusive and exclusive filters. New sessions receive a list of default excludes that excludes common frameworks or libraries. Filters can be grouped and saved as templates for easy reuse in other sessions.
Screenshot
Profiling settings templates are now adjustable outside the session startup dialog and present an overview of important settings, Custom profiling settings templates can now be saved.
Screenshot
The session startup dialog now offers quick summaries and edit links for profiling settings, filter settings and trigger settings. This is the dialog that is most important for IDE integration users.
Screenshot
You can now define defaults for new sessions. A default filter template, a default profiling settings template and a default trigger set are applied to every newly created session.
Screenshot
The new JProfiler MBean is registered for Java 5+ JVMs, so you can use JConsole or other technologies that support MBeans to control the profiling agent manually. This is especially useful for offline profiling. Previously you had to use the API and write your own user interface to expose the controller to the user.
Screenshot
The JProfiler eclipse integration now supports eclipse WTP. This means that application servers can be profiled from within eclipse without any further configuration. Previously you had to modify VM parameters manually or use JProfiler standalone.
Screenshot