HPjmeter 4.2 User's Guide
Approaches to Analyzing Performance Data
The metrics you choose to view depend on your application domain, your code, the demands
for the application, and the operating environment. Look at all of the available ones, and analyze
at least a few of the topmost entries.
Whenever possible, the console visualizers present all metrics sorted in decreasing order of
resources used. This places the largest resource users at the top of the screen. Evaluate them
knowing your application and its characteristics. Use your intuition. If you find anything that
you cannot explain, take the time to investigate and find the cause. A high level of resource
consumption may be legitimate, but it can also be an indication of a performance bottleneck.
Looking at the Data from the Bottom Up
One approach to performance analysis is the bottom-up technique. It can be used even if you
are not very familiar with the application. Look at the following metrics, if available:
• Method Call Count
• Exclusive Method CPU Time
• Exclusive Method Clock Time
If you find a method, or a few methods that consume much time, they can become a target for
your performance tuning. Similarly, if a method is called excessively many times, check to see
if you can reduce the number of calls.
This will often require investigating the invocation context for the method in question. Mark the
method , and find it later in the corresponding call graph. (See Using Call Graph Trees (page 75)).
Looking at the Data from the Top Down
An alternative, top-down approach to profile data analysis is to start from the call graph based
on Clock or CPU time and continue expanding the topmost nodes until you find a method or
multiple methods that implement high-level operations characteristic for your application (that
is, are responsible for transaction processing). By expanding this node you can see how this
high-level operation splits its work among the methods it calls. If your intuition tells you that
the numbers do not look appropriate or correct, continue expanding the nodes that consume too
much time to find the reason for the anomaly.
Looking for Inefficiencies in Memory Usage
Large applications put a lot of stress on all components of the computing system. One strategy
for understanding the behavior of your application is to look at how well the application is
working within the boundaries set for heap size and the selected garbage collection type in use
by the JVM. Adjusting heap size and garbage collection type can improve memory usage and
work efficiency when adjusted to the demands of a particular application. For a view of memory
usage and object metrics, see Profile Memory and/or Heap Activity (page 144). See Analyzing
Garbage Collection Data (page 80) to obtain a detailed view of the impact of GC activity on the
system.
Operating system performance, third-party software performance, the bandwidth of the I/O
subsystem, and so on, all affect application performance. Analyzing these factors is beyond the
scope of this tool, but it should always remain on your agenda.
Considerations in Interpreting the Data
What information can be gleaned from various metrics depends on how the values are calculated.
Use this section to understand the meaning of the performance measures used by HPjmeter.
68 Profiling Applications