Overview of the Java Profiling tool

The workbench supports two types of profiling: trace-based Java profiling and sample-based profiling.

Trace-based profiling

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 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 locate 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.

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 (A):
  • Application process (1).
  • Agent (2).
  • Data collection engine (3)
  • Service (4)
Development hosts (B):
  • Eclipse plug-ins (5)
  • Test client (6)
  • JDK (7)

Sample-based profiling using the Health Center Agent

You can use sample-based profiling using the Health Center Agent in your project, which: Health Center Agent is supported on all recent IBM JVMs:

  • Provides very low overhead compare with trace-based profiling,
  • Is provided by Health Center Agent, in the same way that the IBM Support Assistant is provided,
  • Uses the Health Center API which was introduced in Health Center v2.1,
  • Is supported on all recent IBM JVMs, including:
    • Java 6 SR5
    • Java 7 and 8.
  • Can be used for profiling execution-time problems:
    • You can specify class name filter using a regular expression.
  • Is available on all supported profiling launch types, including profiling on WebSphere Application Server and WebSphere Application Server Liberty Profile servers:
    • Java application
    • JUnit
    • JUnit Plugin launch
    • Applet
    • OSGI application
    • Eclipse application
    • Profile on server
  • Is supported on all Rational Agent Controller-supported platforms.

Feedback