|
Call tree collection method
Select the call tree collection method for CPU profiling as one of
-
dynamic instrumentation
With dynamic instrumentation selected, JProfiler modifies the bytecode
of all unfiltered classes on the fly as they are loaded by the JVM to
include hooks for CPU profiling. Java core classes
(java.*) cannot be profiled this way
and are filtered automatically. Dynamic instrumentation is considerably
faster than full instrumentation.
-
sampling
When sampling is enabled JProfiler inspects the call stacks of all
threads periodically. The period between to measurements
for each thread is booked to the greatest common denominator of the two
class stacks. Sampling is fast even without any filters, but accuracy
is low and no invocation count is displayed.
If sampling is enabled, the sampling frequency can be adjusted with
a slider. The possible range is 1 - 20 ms. A lower
sampling frequency incurs a higher CPU overhead when profiling.
record exact allocations is available only in combination
with sampling. If this option is not selected, allocations will
be reported according to the call traces recorded by the sampling
procedure. This may lead to incorrect allocation spots. When
record exact allocations is enabled, allocation spots
are determined with an alternative method. However, there is a considerable
increase in CPU and memory overhead if this option is selected.
-
full instrumentation
With full instrumentation selected, all method calls are traced by
JProfiler. This allows for profiling Java core classes
(java.*), but is considerably slower
than dynamic instrumentation, especially for 1.4 JVMs.
subclassmethods is available only in combination with full
instrumentation and shows the concrete classes on which the methods are invoked
rather than the classes where the methods are implemented.
|