Allocation Call Tree |
|
|
The allocation call tree shows a top-down call tree cumulated for all
threads and filtered according to the
active filter sets which
is similar to the one shown in the
call tree view in JProfiler's
CPU section except that it shows allocations
of class instances and arrays instead of time measurements.
In order to prepare an allocation call tree, you have to click on the
Before the allocation call tree is calculated, the allocation options dialog is shown. The class or package selection as well as the selected liveness mode are displayed at the top of the allocation call tree view. |
|
JProfiler automatically detects J2EE components
and displays the relevant nodes in the allocation call tree with special icons that depend
on the J2EE component type:
servlets JSPs EJBsFor JSPs and EJBs, JProfiler shows a display name:
If URL splitting is enabled,
each request URL creates a new node with a
You can disable both J2EE component detection as well as URL splitting on the Java Subsystems tab of the profiling settings. Also, the URL splitting method can be customized in the profiling settings or with a custom handler in the profiling API. |
|
The allocation call tree view has an aggregation level selector. It allows you
to switch between
When you switch between two aggregation levels, JProfiler will make the best effort to preserve your current selection. When switching to a a more detailed aggregation level, there may not be a unique mapping and the first hit in the allocation call tree is chosen. The allocation call tree doesn't display all method calls in the JVM, it only displays
A particular node is a bridge node if it would normally not be displayed in the view, but has descendant nodes that have to be displayed. The icons of bridge nodes are grayed out. For the allocation call tree view this is the case if the current node has no allocations, but there are descendant nodes that have allocations. |
|
When navigating through the allocation call tree by opening
method calls, JProfiler automatically expands methods which are only called
by one other method themselves. To quickly expand larger portions
of the allocation call tree, select a method and choose
View->Expand 10 levels from the main window's menu or
choose the corresponding menu item from the context menu. If you want to
collapse an opened part of the allocation call tree, select the
topmost method that should remain visible and choose
View->Collapse all from the main window's menu or
the context menu.
|
|
If a method node is selected, the context menu allows you to quickly add a
method trigger for the selected method with the
add method trigger action.
A dialog will be displayed where you
can choose whether to add the method interception to an existing method trigger or whether to create a
new method trigger.
|
|
Nodes in the allocation call tree can be hidden by selecting them and hitting the DEL key
or by choosing Hide Selected from the context menu. Percentages will be corrected accordingly as if the
hidden node did not exist.
All similar nodes in other call stacks will be hidden as well.
When you hide a node, the toolbar and the context menu will get a |
| If enabled in the view settings, every node in the allocation call tree has a percentage bar whose length is proportional to the total number of allocations including all descendant nodes and whose light-red part indicates the percentage of allocations in the current node. |
|
Every node in the allocation call tree has textual information attached that depends on the
allocation call tree settings and shows
The size and the allocation count are either cumulated for all calls below the associated node or not, depending on the corresponding cumulation view setting. Note that allocations performed in calls to filtered classes are consolidated in the first call into a filtered class. |
|
If garbage collected objects are shown, you can reset the accumulated data
by clicking on the
reset action in the toolbar or choosing the the
Reset garbage collector for this view menu item
in the View or context menu. All garbage collector data will be
cleared and the view will be empty for the "Garbage collected objects" mode until
further objects are garbage collected and a new allocation call tree or allocation hot spots are
calculated. Note that you can force garbage collection by clicking on the garbage collector
tool bar button or by
selecting Profiler->Run garbage collector from
JProfiler's main menu.
|
| Only recorded objects will be displayed in the allocation call tree view. See the memory section overview for further details on allocation recording. |
|
The View->Take heap snapshot for selection menu item and the
corresponding
toolbar entry take a new snapshot, switch to the
heap walker view and create an object set with
the currently selected class and allocation spot.
|
|