Fully featured low overhead profiler for Java EE and Java SE platforms.
Performance monitoring and profiling of Jenkins, TeamCity, Gradle, Maven, Ant, JUnit and TestNG.
Easy to use performance and memory profiler for .NET framework.

Local profiling

Local profiling is the case when the profiled application and the profiler UI run on the same machine, usually the developer workstation.

See also Remote profiling.

You should perform two actions to perform local profiling:

1. Ensure the local application is running with the profiler agent

To profile a Java application, the profiler agent should be loaded into the JVM.

There are different approaches depending on the application type:

Java SE application

Use one of the following:

Java EE application (EE server)

Use one of the following:

  • IDE integration: use the Profile action from within your IDE, like you do Run or Debug.
  • Java EE server integration wizard: use if the application server runs standalone, i.e. you start it with a script or it runs as a service.

    The wizard automatically enables profiling in a number of popular application servers, generating appropriate startup scripts. Even if your server is not in the list of known servers, the wizard offers the "Generic server" option which will instruct you on how to manually perform the necessary changes.

    The wizard can be started from the profiler Welcome screen, or by using Tools | Profile Local Java EE Server or Application....

  • Attach profiler agent to a running JVM.

Profiling Java Web Start/JNLP

Use one of the following:

  • Start Java Web Start application with the profiler agent by setting the environment variable JAVAWS_VM_ARGS:

    JAVAWS_VM_ARGS=-agentpath:<agent library path>

    If necessary, specify other VM options too:

    JAVAWS_VM_ARGS=-agentpath:<agent library path> <other VM options>

    Please learn how to specify -agentpath:<agent library path> in Enabling profiling manually.

    Hint: on Windows, you can set JAVAWS_VM_ARGS variable globally in "My Computer" settings.

  • Attach profiler agent to a running JVM.


Use one of the following:

  • IDE integration: use the Profile action from within your IDE, like you do Run or Debug.
  • To profile applets running in a browser: ensure the applet has started, then attach to the running JVM.
  • To profile applets started with appletviewer command pass -J-agentpath:<agent library path> (see Enabling profiling manually) as a command line parameter.

2. Connect to the local application

When the local application is running, connect to it from the profiler UI to perform profiling.