JProfiler – Java Profiler

JProfiler is an award-winning all-in-one Java profiler. JProfiler’s intuitive GUI helps you find performance bottlenecks, pin down memory leaks and resolve threading issues.

Download JProfiler

Key Features

Key Features

Live profiling of a local session

Once you define how your application is started, JProfiler is the perfect Java Profiler to profile it and you immediately see live data from the profiled JVM. To eliminate the need for session configuration, you can use one of the many IDE plugins to profile the application from within your favorite IDE.

Live profiling of a remote session

By modifying the VM parameters of the java start command you can get any Java application to listen for a connection from the GUI. The profiled application can not only run on your local computer, JProfiler can attach to a profiled application over the network. In addition, JProfiler provides numerous integration wizards for all popular application servers that help you in setting up your application for profiling.

Offline Profiling

You do not have to connect with the JProfiler GUI to the profiled application in order to profile it: With offline profiling you can use JProfiler’s powerful trigger system or the JProfiler API to control the profiling agent and save snapshots to disk. At a later time you can open these snapshots in the JProfiler GUI or programmatically export profiling views with the command line export tool or the export ant task.

Snapshot Comparisons

In JProfiler, you can save a snapshot of all current profiling data to disk. It offers a rich comparison facility to see what has changed between two or more snapshots. Alternatively you can create comparison reports programmatically with the command line comparison tool or the comparison ant task.

Viewing an HPROF Snapshot

JProfiler can open HPROF snapshots that have been taken with JVM tools such as jconsole or jmap or that have been triggerd by the -XX:+HeapDumpOnOutOfMemoryError JVM parameter.



Top 10 Reasons why to Choose JProfiler

#1 Exceptional ease of use
When you profile, you need the most powerful tool you can get. At the same time, you do not want to spend time learning how to use the tool. JProfiler is just that: simple and powerful at the same time. Configuring sessions is straight-forward, third party integrations make getting started a breeze and profiling data is presented in a natural way. On all levels, JProfiler has been carefully designed to help you get started with solving your problems.

#2 Real-time display of profiling data
With JProfiler you can immediately observe profiling data as your application is running. CPU, memory and thread profiling views are updated live and can be inspected without the need to wait for the measurement to complete. For a large number of use-cases, this ability provides you with an extremely fast path to a solution. In addition, you can save snapshots at any time, interactively as well as programmatically.

#3 The unique heap walker
Finding a memory leak can be impossible without the right tool. JProfiler’s heap walker offers you an intuitive interface to solve both simple and complex memory problems. 5 different views show different aspects of the current set of objects. Each view allows you to create new object sets based on the displayed data. Each view provides you with essential insights on the selected objects. Questions like why objects are not garbage collected are answered with a single click of the mouse.

#4 The powerful CPU profiler
Fixing performance bottlenecks is the most frequent use case for a profiler. However, CPU data can be overwhelming in its level of detail and the way data is collected can make a huge difference in usability. With JProfiler, you have a decisive advantage when trying to find the reason for a problem. Call tree view filters, aggregation levels and thread status selectors are just some examples of it’s versatility in this area.

#5 The integrated thread profiler
Problems related to threading are much more frequent than one might assume. Without a thread profiler, you only have a minimal chance to tackle such issues. A whole range of otherwise opaque problems can be solved when using JProfiler, such as increasing liveness in a multi-threaded application that uses too much locking. Thread profiling not only has a separate view section in JProfiler, it is also tightly integrated into the CPU profiling views.

#6 Excellent support for Java Enterprise Edition
Dedicated support for JEE is present in most views in JProfiler. For example, in the JEE aggregation level you see the call tree in terms of the JEE components in your application. Also, it adds a semantic layer on top of the low-level profiling data, like JDBC, JMS and JNDI calls that are presented in the CPU profiling views. With its JEE support, JProfiler bridges the gap between a code profiler and a high-level JEE monitoring tool.

#7 Extensive QA capabilities
JProfiler is ideally suited as a QA tool, both during development as well as for dedicated QA teams. The rich functionality around snapshot comparisons makes it easy to track progress. It has strong support for command line operations. This includes the ability to profile, export snapshot data and create snapshots comparisons from the command line. The ant tasks bundled with JProfiler allow you to perform all command line operations from your build script.

#8 Broadest support for platforms, IDEs and application servers
JProfiler integrates into your environment: We provide native agent libraries for a wide range of platforms, both for 32-bit and 64-bit JVMs. Integrations into all popular IDEs makes profiling during development as easy as running your application. And the large number of integrations wizards for nearly all application servers on the market ensures that you can get started with a few clicks and not with reading documentation.

#9 Low overhead
JProfiler records data only when you need it. In fact, you can start your application with the JProfiler agent and attach the GUI at a later time. When you do not record any data, the overhead is extremely small. That’s what we call on demand profiling. Invariably, there are a lot of things you can adjust in an advanced profiler. It shows you how your profiling settings will impact performance and offers you templates to quickly select profiling settings for common use cases.

#10 Extensibility
JProfiler is extensible. It is built on a well-documented platform that allows you to build your own custom profiler for special situations or your own analysis tool for snapshots. With the interceptor API you can add additional semantic layers to the profiling data, similar to the built-in JDBC, JMS and JNDI profiling. The ready-to-run examples show you how easy it is to extend JProfiler with a few lines of code.

New Features

New Features

Release 6.1.1 (2010-11-10)

Bugs fixed:

  • Several integration wizards on Unix did not work anymore (regression in 6.1)
  • Heap walker incoming reference tree view: Some paths to GC root were not merged correctly (regression in 6.1)
  • Heap walker allocations view: unrecorded objects node was labeled as filtered classes nodes
  • Fixed undefined behavior when loading snapshots from a newer version of JProfiler

  • Release 6.1 (2010-10-22)

    New features:

  • Full support for Java 7
  • Much better support for loading extremely large snapshots
  • Heap analysis is now stored for future use
  • Support for debugging and profiling at the same time
  • Creation of archives with the profiling libraries for remote platforms
  • Improved handling of the choice between sampling and instrumentation
  • Snapshots that have an uncompressed size of more than 2 GB can now be opened on 64-bit Windows
  • Heap analysis options can be set when opening a snapshot
  • Improved installer with streamlined installation and downloadable profiling libraries for other platforms
  • Support for IDEA X (current EAP build)
  • Support for Netbeans 6.9
  • Bugs fixed:

  • Snapshot comparisons: The heap dump was always loaded for non-offline snapshots even if it was not required for the comparison
  • Snapshot are saved more reliably when the heap of the profiled JVM is maxed out

  • Release 6.0.6 (2010-07-01)
    New features:

  • Full support for eclipse 3.6

  • Release 6.0.5 (2010-06-23)

    Bugs fixed:

  • Some usages of LockSupport.park were recorded as runnable
  • Fixed loading of some snapshot files from JProfiler 5.1 and earlier

  • Release 6.0.4 (2010-06-07)

    New features:

  • Heap walker: “Purging index” phase is is now much faster
  • Bundled IntelliJ IDEA plugin now supports IDEA 9.0.2
  • Bugs fixed:

  • Thread dumps in offline snapshots were not loaded in the JProfiler GUI
  • Fixed loading of some snapshot files

  • Release 6.0.3 (2010-02-12)

    Bugs fixed:

  • Opening large snapshots (> 2-3 GB) could result in using up all disk space
  • Data from the locking history graph and the monitor history view that was already visible in the JProfiler GUI at the time of saving was not shown in snapshots
  • Wrong tooltip was displayed for snapshots in the threads history view if no monitors were recorded for a particular thread and time
  • In the telemetry views, it was sometimes possible to zoom in from the initial zoom level, but not to zoom out again
    The main thread was not recorded on BEA JRockit JVMs
  • Download

    Enter your contact information

    *Full Name:
    *E-mail Address:
    Company Name:
    Postal/Zip Code:
    *Telephone Number:


    *Enter the characters you see below:




    The current price list for JProfiler is listed below:

    DescriptionUSD (per user)
    Price Per License
    Jprofiler Single User License 499
    Jprofiler Single User License with Gold support 698
    Jprofiler 2-3 User License 459
    Jprofiler 2-3 User license with Gold support 658
    Jprofiler 4-7 Users 429
    Jprofiler 4-7 Users with Gold support 628
    Jprofiler 8-15 Users 399
    Jprofiler 8-15 Users with Gold support 598
    Floating License
    Jprofiler Floating License 1999
    Jprofiler Floating License (Qty: 2 -3) 1839
    Jprofiler Floating License (Qty: 4 -7) License 1729
    Jprofiler Floating License (Qty: 8 or more) 1599

    How to order JProfiler?

    1. Online Order Gateway
    2. By Phone (Call 613-368-4300)

    For further pricing information, contact



    Back to the Top
    Download a Free Trial of JProfiler