Screenshot_016
  • size: 24 MB
  • company: ej-technologies GmbH
  • Demo

Licenses

JProfiler supports the following modes of operation:

Live profiling of a local session

Once you define how your application is started, JProfiler can profile it and you immediately see live data from the profiled JVM. To eliminate the need for session configuration, you can use one of the many IDE plugins to profile the application from within your favorite IDE.

Live profiling of a remote session

By modifying the VM parameters of the java start command you can get any Java application to listen for a connection from the JProfiler GUI. The profiled application can not only run on your local computer, JProfiler can attach to a profiled application over the network. In addition, JProfiler provides numerous integration wizards for all popular application servers that help you in setting up your application for profiling.

Offline profiling

You do not have to connect with the JProfiler GUI to the profiled application in order to profile it: With offline profiling you can use JProfiler's powerful trigger system or the JProfiler API to control the profiling agent and save snapshots to disk. At a later time you can open these snapshots in the JProfiler GUI or programmatically export profiling views with the command line export tool or the export ant task.

Snapshot comparisons

In JProfiler, you can save a snapshot of all current profiling data to disk. JProfiler offers a rich comparison facility to see what has changed between two or more snapshots. Alternatively you can create comparison reports programmatically with the command line comparison tool or the comparison ant task.

Viewing an HPROF snapshot

JProfiler can open HPROF snapshots that have been taken with JVM tools such as jconsole or jmap or that have been triggerd by the -XX:+HeapDumpOnOutOfMemoryError JVM parameter.

The following list gives a high level overview of the profiling views in JProfiler:

Memory profiling

JProfiler's memory view section offers dynamically updated views on memory usage and views that show information about allocations spots. All views have several aggregation levels and can show live and garbage collected objects.

All objects

  • Shows classes or packages of all objects on the heap with instance counts and size information. You can mark current values and show differences.

Recorded objects

  • Shows classes or packages of all recorded objects. You can mark current values and show differences.

Allocation call tree

  • Shows a call tree or methods, classes, packages or Java EE components with annotated allocations of selected classes.

Allocation hot spots

  • Shows a list of methods, classes, packages or Java EE components that allocate selected classes. You can mark current values and show differences. The tree of backtraces can be shown for each hot spot.

Class tracker

  • Shows a timeline with a graph of instance counts for selected classes.

Heap walker

In JProfiler's heap walker you can take a snapshot of the heap and drill down to objects of interest by performing selection steps. The heap walker has five views:

Classes

  • Shows all classes and their instances.

Allocations

  • Shows allocation tree and allocation hot spots for recorded objects.

Biggest objects

  • Shows the objects that block the largest parts of the heap from being garbage collected. The dominator tree can be expanded in place to show these retained objects.

References

  • Shows a graph of references for individual objects and offers a "show path to garbage collector root" functionality. Also offers cumulated views for incoming and outgoing references.

Data

  • Shows instance and class data for individual objects.

Time

  • Shows a time-resolved histogram of recorded objects.

CPU profiling

JProfiler offers various ways to record the call tree to optimize for performance or detail. The thread or thread group as well as the thread status can be chosen for all views. All views can be aggregated on a method, class, package or Java EE component level. The CPU view section contains:

Call tree

  • Shows a cumulated top-down tree of all recorded call sequences in the JVM. JDBC, JMS and JNDI service calls are annotated into the call tree. The call tree can be split for different request URL to a servlet or JSP. You can mark methods for "exceptional method run recording" and see the slowest invocations separatly.

Hot spots

  • Shows the list of the most time consuming methods. The tree of backtraces can be shown for each hot spot. Hotspots can be calculated for method calls, JDBC, JMS and JNDI service calls, as well as for URL invocations.

Call graph

  • Shows a graph of call sequences starting from selected methods, classes, packages or Java EE components.

Method statistics

  • Shows statistical information about the distribution of call times for all methods together with a call time distribution graph, that can be used to spot outliers.

Call tracer

  • Shows recorded chronological traces for method calls grouped by thread, package and class.

Thread profiling

For thread profiling, JProfiler offers the following views:

Thread history

  • Shows a timeline with thread activity and thread status.

Thread monitor

  • Shows a list of all live threads with their current activity.

Thread dumps

  • You can take multiple threads dumps and analyze them in the thread dumps view.

Monitor profiling

For monitor profiling, JProfiler offers the following views:

Current locking graph

  • Shows a graph of all waiting and blocking situations in the JVM.

Current monitors

  • Shows the currently used monitors and their associated threads.

Locking history graph

  • Shows the history of recorded waiting and blocking situations as graphs.

Monitor history

  • Shows the history of recorded waiting and blocking events.

Monitor usage statistics

  • Shows statistics for monitors grouped by monitors, threads and classes of monitors.

VM telemetry

To observe the internal state of your JVM, JProfiler offers various telemetry views:

Heap

  • Shows a timeline with a graph of the used heap and the heap size.

Recorded objects

  • Shows a timeline with a graph of live objects and arrays that have been recorded.

Recorded throughput

  • Shows a timeline with a graph of the rates of object creation and garbage collection for recorded objects.

GC activity

  • Shows a timeline with a graph of garbage collector activity.

Classes

  • Shows a timeline with a graph of loaded classes.

Threads

  • Shows a timeline with a graph of active threads.

CPU load

  • Shows a timeline with a graph of the CPU load generated by the profiled application.

updated: 27.10.2010

added: 27.10.2010

Screenshot_014 Screenshot_015 Screenshot_019 Screenshot_021 Screenshot_023