Overview of the Java Profiling Tool

Java Profiler is a standards based Java profiler tightly integrated into Eclipse development workflow whether you are developing Rich client applications or Web based applications. The Java profiler supports a broad set of java virtual machines and a comprehensive profiling of your java applications. The Java Profiler is both a tool for profiling and an extensible framework, It 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, memory usage and threading problems. The Java Profiler tool provides a comprehensive feature set of profiling functionality and provides an intuitive user interface to analyze the application behavior.

The following Java Profiler features enables your application profiling.
  • Memory profiling
    • Keep track of your objects and find out where the problem spots are. 
    • Find out the origination of your application memory leak.**
  • CPU profiling
    • Find out where your CPU time is going and zero in on performance bottlenecks.
  • Thread profiling**
    • Check the activity of your threads, resolve deadlocks and get detailed information on your application's monitor usage.
    • Scale your application by evaluating the threading behavior.
  • Pattern extraction
    • 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.
  • 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.

** Support for profiling Java 5.0 (also referred to as Java 1.5) and above java virtual machines.

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 showing deployment hosts and their contents and development hosts and their contents.
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 Test client WebSphere plug-ins <<Modify this figure>>

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

 

Related concepts
Common Base Event model
Integrated Agent Controller Overview
Profiling resources

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

Thread Profiling views