 |
|
JProfiler:
|
7.1
|
|
| |
(2012-01-26) |
|
install4j:
|
5.0.11
|
|
| |
(2012-01-12) |
|
exe4j:
|
4.4.4
|
|
| |
(2012-01-12) |
|
 |
|
|
Please also check out the
The best way to explore JProfiler's feature set is to
download an evaluation copy.
JProfiler supports the following modes of operation:
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 time line 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:
|
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 separately. With request tracking, you can connect call sites to
execution sites in multi-threaded applications.
|
 |
Hot spots
Shows the list of the most time consuming methods. The tree of backtraces
can be shown for each hot spot.
|
 |
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 time line 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 thread 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 time line with a graph of the used heap and the heap size.
|
 |
Recorded objects
Shows a time line with a graph of live objects and arrays that have been recorded.
|
 |
Recorded throughput
Shows a time line with a graph of the rates of object creation and garbage collection for recorded objects.
|
 |
GC activity
Shows a time line with a graph of garbage collector activity.
|
 |
Classes
Shows a time line with a graph of loaded classes.
|
 |
Threads
Shows a time line with a graph of active threads.
|
 |
CPU load
Shows a time line with a graph of the CPU load generated by the profiled application.
|
|
JEE & Probes
JProfiler offers probes for:
- JDBC
- JMS
- JNDI
- Servlets
- Files
- Sockets
- Processes
Probes show the following information:
 |
Time line
In the time line view, the probe shows its control objects as colored bars along a time axis.
Control objects are long-lived objects associated with single probe events. For example, in the JDBC
probe, the control objects are the database connections. The colors on the time line bars correspond to
the different states that the control object can be in.
|
 |
Control objects
Tabular details about control objects are shown in the control objects view. It shows more details
about the control objects as well as statistics on the recorded events, such as total throughput for
file I/O. With the filter controls and the total line at the bottom you can make quick summations for
subsets of control objects. Some probes show additional detail in nested tables, where you can open a
dialog to show interesting multi-line values in more details. For example, the
command line parameters of a process can be very long.
|
 |
Hot spots
In the hot spots view, the probe shows hot spots of payload names published by probe events that are
sorted by execution time. For example, the file probe shows file names, the JDBC probe shows
SQL strings and the JNDI probe shows queries. Each hot spot can be expanded to show the back traces that
contribute to the hot spot.
|
 |
Telemetries
In the telemetries view>, you can see the various telemetries that are published by the probe.
|
 |
Events
The events view shows the single events recorded by the probe. Events have thread and stack trace
information, and you can easily jump to the associated control object. Again, the filters and the total line
allow you to sum selected events.
|
|
|