Memory profiling
JProfiler's memory view section
offers dynamically updated views on memory usage and
allocations. All views can show live and garbage collected
objects.
-
Class monitor
Shows classes and their instances. You can mark current
values and show differences.
-
Allocation monitor
Shows a call tree with annotated allocations of selected
classes.
-
Allocation hot
spots
Shows a list of methods that allocate
selected classes. You can mark current values and show
differences. The tree of backtraces can be shown for each
hot spot.
-
Memory statistics
Shows package statistics of objects and
allocations.
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
four views:
-
Classes
Shows all
classes and their instances.
-
Allocations
Shows
allocation tree and allocation hot spots.
-
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.
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. The CPU view section contains:
-
Invocation tree
Shows a cumulated top-down tree of all recorded call
sequences in the JVM.
-
Hot spots
Shows
the list of the most time consuming methods. The tree of
backtraces can be shown for each hot spot.
-
Method graph
Shows
a graph of call sequences starting from selected
methods.
-
CPU statistics
Shows package, class and method statistics.
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.
-
Deadlock detection
graph
Shows a graph of all deadlocks in the
JVM.
-
Current monitor
usage
Shows the currently used monitors and their
associated threads.
-
Monitor usage
history
Shows the history of significant 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.
-
Objects
Shows a
timeline with a graph of live objects and arrays.
-
Garbage collector
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.
JProfiler 3.3 introduces the
following notable new features:
-
The eclipse 3.x integration
was rewritten. The new integration now supports all
standard run types in eclipse. Profiling and running your
applications are now very similar.
-
The IDEA 4.x integration was
also rewritten. The new integration now supports all
standard run types in IDEA including web
applications.
-
Profiling settings are now
configured in the startup/connection section of the "Edit
configurations" dialog.
-
A new JDeveloper 10g
integration was added. All types of run targets can be
profiled from within JDeveloper.
-
A new IDE integration for
Netbeans 4.0 was added that allows you to profile
standard Java projects and web projects conveniently from
within Netbeans 4.0.
-
In the cumulated incoming
reference view of the heap walker, you can now either
display the counts and sizes of the reference holders
or of the referenced objects. Also, there are now
two corresponding selection steps. This makes it much
easier to work with certain kinds of memory leaks.
-
JProfiler can now reliably
keep the VM alive so you can continue to analyze
profiling data even after the application has
exited.
-
JProfiler now consumes a lot
less memory than previous versions. This and other
enhancements as well as bug fixes ensure a much better
stability when profiling for e