Fully featured low overhead profiler for Java EE and Java SE platforms.
Monitoring and profiling solution for Gradle, Maven, Ant, JUnit and TestNG.
Easy to use performance and memory profiler for .NET framework.

FAQ: How to profile in my scenario?

Profiling in Docker

Q: How do I profile a Java server or application running in Docker container?

A: Please follow these instructions.

Profiling in Amazon EC2 instance

Q: How do I profile a Java application in Amazon EC2 instance?

A: Please follow these instructions.

Profiling in an integrated development environment

Eclipse

Q: How do I profile from within Eclipse or its derivative such as MyEclipse etc.?

A: Use IDE integration wizard to install the profiler plugin.

IntelliJ IDEA

Q: How do I profile from within IntelliJ IDEA?

A: Use IDE integration wizard to install the profiler plugin.

JDeveloper

Q: How do I profile from within JDeveloper?

A: Use IDE integration wizard to install the profiler plugin.

NetBeans

Q: How do I profile from within NetBeans?

A: Use IDE integration wizard to install the profiler plugin.

Profiling Java application started in command line

Q: How do I profile arbitrary Java application which I start from a command line?

A: To start a Java application with the profiler agent, add Java command line argument -agentpath with appropriate parameters, as described here.

Alternatively, use the action "Tools | Profile Local Java EE Server or Application..." from menu or from Welcome screen and choose the option "Arbitrary Java Application". The wizard will help you point -agentpath to the profiler agent library appropriate for your platform, as well as to specify agent startup options, if necessary.

Please note that instead of starting an application with the profiler agent, you may also attach the profiler agent to already running Java process on demand. This approach named attach mode is easy to use, but it has limitations and is not always available.

Profiling on a remote machine

Q: How do I profile a Java server or application running on a remote machine?

A: There are two approaches.

Approach 1: attach mode (easy to use, but may lack profiling capabilities): You can directly attach the profiler agent to a remote Java process started without the profiler agent by using the main menu action "Tools | Profile Remote Java EE Server or Application" (also available from the profiler's Welcome screen). To discover on the remote host Java processes without the agent you should choose advanced application discovery method.

This approach named attach mode is easy to use, but it has limitations and is not always available.

Approach 2: load the profiler agent on start (full profiling capabilities, requires steps to enable): Use the console Java EE server integration wizard to enable profiling in the remote server or application. When the remote server or application is running, connect to it from the profiler UI to perform profiling.

Profiling Java EE server

Q: How do I profile a Java EE server running on my local machine?

A: This depends on how you start the server.

If you start the server from your integrated development environment (IDE), use IDE integration wizard to install the profiler plugin. Supported are Eclipse (with derivatives such as MyEclipse etc.), IntelliJ IDEA, NetBeans, JDeveloper.

If you start the server with a startup script or as a service, use "Profile local Java EE server or application..." action on Welcome screen or in "Tools" menu.

Please note that instead of starting a Java server with the profiler agent, you may also attach the profiler agent to already running server process on demand. This approach named attach mode is easy to use, but it has limitations and is not always available.

Q: How do I profile a Java EE server not supported by integration wizard?

A: Please follow generic instructions for local or remote profiling, whichever applies to your case. If you use the Java EE server integration wizard, either local or remote, you should choose the "Arbitrary Java application" option.