Overview of the Profiling Tool

The Profiling Tool consists of the Profiling and Logging Perspective and a number of views.  It enables you to profile your applications, to work with profiling resources, to interact with the applications you are profiling, and to examine your applications for performance and memory usage problems.  The Profiling Tool collects data related to the Java program's run-time behavior and presents this data in both graphical and tabular views.  All these facilities help you to visualize and understand your program execution as well as to explore patterns of program behavior. 

The Profiling Tool also enables you to pinpoint the operations that take the most time, and helps you to easily identify repetitive execution behavior and to eliminate redundancy. In short, the Profiling Tool is broadly useful for performance analysis and for gaining a deeper understanding of your Java program.

Profiling enables you to test your application's performance early enough in the programming development cycle that there is sufficient time to make improvements and to test them.

Profiling architecture

The Java Profiling Agent is an agent instance that is deployed with the Agent Controller. In the deployment diagram below, the Agent (2) may be a Java Profiling Agent. The Application Process (1) is the Java Virtual Machine that executes the Java application. Note that the diagram below applies to the remote agent controller, not the integrated agent controller.

Deployment diagram
Deployment hosts Deployment hosts Deployment hosts Deployment hosts Agent Agent Application process Application process Data collection engine Service Development hosts Development hosts Development hosts Development hosts Development hosts Development hosts Development hosts JDK Test client WebSphere plug-ins

Figure 1:
A Deployment hosts
1 Application process
2 Agent
3 Data collection engine
4 Service
B Development hosts
5 WebSphere plug-ins
6 Test client
7 JDK

Each application process being profiled may have a profiling agent running within it. Thus, the Profiling Tool makes it possible to interactively profile these applications from a single workbench.

Features

Some features of the Profiling Tool are:

Visual information display

The visual information display for the Profiling Tool is organized at a package, class, and method level. As a result, the Profiling Tool is able to model and present your program's information in a way that is consistent with a Java programming hierarchy.

Pattern extraction

Pattern extraction takes a mass of execution information and reduces it to a fundamental form, giving you an overall view of the execution of a program, with the choice of viewing more detail about object and method calls. Pattern extraction greatly simplifies run-time analysis.  The Profiling Tool has powerful pattern extraction capabilities. .

Distributed monitoring  

The tools give you the ability to concurrently monitor many processes on many machines, thereby profiling a distributed application. Using the Agent Controller, the Profiling Tool has the ability to launch applications on remote machines and to then interactively profile them. This is useful when trying to determine the performance characteristics of your applications when they are running on their deployment target platform.

 

Related concepts
Common Base Event model
Integrated Agent Controller
Profiling resources
The Symptom Database

Related tasks
Setting profiling preferences
Specifying profiling criteria
Profiling an application
Saving profiling resources
Importing profiling resources

Related references

Sequence diagram views
Memory Statistics view
Execution Statistics view