The award-winning all-in-one Java profiler for Windows PC

JProfiler

JProfiler

  -  163.72 MB  -  Trial
  • Latest Version

    JProfiler 15.0 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows 7 64 / Windows 8 64 / Windows 10 64 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    ej-technologies GmbH / External Link

  • Filename

    jprofiler_windows-x64_15_0.exe

  • MD5 Checksum

    d44432ff7e5a39d5e04ee89174e7ec17

JProfiler's intuitive UI helps you resolve Java-based applications and performance bottlenecks, pin down memory leaks, and understand threading issues.

When your 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 straightforward, third-party integrations make getting started a breeze, and profiling data is presented in a natural way. On all levels, It has been carefully designed to help you get started with solving your problems.

Database calls are the top reasons for performance problems in business applications. JProfiler's JDBC and JPA/Hibernate probes as well as the NoSQL probes for MongoDB, Cassandra, and HBase show the reasons for slow database access and how slow statements are called by your code.

From the JDBC timeline view that shows you all JDBC connections with their activities, through the hot spots view that shows you slow statements to various telemetry views and a list of single events, the database probes are an essential tool for getting insight into your database layer.
  • Live profiling of a local session
  • Live profiling of a remote session
  • Snapshot comparisons
  • Viewing an HPROF snapshot
  • Easy creation of custom probes
  • Memory profiling
  • Allocation of hot spots
  • Biggest objects
  • CPU profiling
  • Thread history
  • Control objects
Dedicated support for JEE is present in most views in the app. For example, at the JEE aggregation level, you see the call tree in terms of the JEE components in your application.

In addition, the call tree is split up for each request URI. Also, It adds a semantic layer on top of the low-level profiling data, like JDBC, JPA/Hibernate, JMS, and JNDI calls that are presented in the CPU profiling views. With its JEE support, the program bridges the gap between a code profiler and a high-level JEE monitoring tool.

It has a number of probes that show you higher-level data from interesting subsystems in the JRE. In addition to the Java EE subsystems like JDBC, JPA/Hibernate, JSP/Servlets, JMS, web services, and JNDI, It also presents high-level information about RMI calls, files, sockets, and processes.

Each of these probes has its own set of useful views that gives you general insight, highlights performance problems, and allows you to trace single events. And what's more, all these views are also available for your own custom probes that you can configure on the fly within JProfiler.

Features and Highlights

Live profiling of a local session
Once you define how your application is started, It can 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 JProfiler GUI. The profiled application can not only run on your local computer, but It can also attach to a profiled application over the network. In addition, It provides numerous integration wizards for all popular application servers that help you in setting up your application for profiling.

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

Snapshot comparisons
In the app, 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
It can open HPROF snapshots that have been taken with JVM tools such as jconsole or jmap or that have been triggered by the -XX:+HeapDumpOnOutOfMemoryError JVM parameter.

Request tracking
The innovative concept of request tracking makes profiling of parallel and multi-threaded programming much easier. Request tracking connects call sites with execution sites between different threads with hyperlinks in the call tree view.

Easy creation of custom probes
It offers a custom probe wizard that allows you to define your custom probes directly in the GUI. Your custom probes are deployed to the profiled application by the app and you do not even have to restart the profiled application when changing or adding custom probes.

How to Use
  • Launch JProfiler and select the profiling session type
  • Attach JProfiler to a running Java application
  • Use the live profiling data to analyze performance
  • Investigate memory usage and garbage collection
  • Identify CPU hotspots and optimize code
  • Examine thread behavior and synchronization issues
  • Save and export profiling reports for later analysis
  • Customize profiling settings for specific needs
  • Integrate JProfiler with your IDE for seamless debugging
System Requirements
  • Windows 11 or Windows 10 (64-bit)
  • Minimum 4 GB RAM (8 GB recommended)
  • At least 300 MB of free disk space
  • Java Development Kit (JDK) 8 or later
  • 64-bit processor with multi-core support
PROS
  • Comprehensive profiling tools
  • User-friendly graphical interface
  • Supports remote profiling
  • Integrates with major IDEs
  • Detailed memory leak detection
CONS
  • High system resource usage
  • Expensive for small teams
  • Limited support for non-Java apps
  • Slower performance on large projects
Note: 10 days trial version. Requires Java JRE.

Also Available: Download JProfiler for Mac

  • JProfiler 15.0 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    JProfiler 15.0 Screenshot 1
  • JProfiler 15.0 Screenshot 2
  • JProfiler 15.0 Screenshot 3
  • JProfiler 15.0 Screenshot 4
  • JProfiler 15.0 Screenshot 5

What's new in this version:

New features:
- Probes for Apache Kafka were added
- An IDE integration for Visual Studio Code was added
- Alternative OpenSSH executable mode for attaching through SSH enables support for more authentication schemes
- Netcat mode for SSH connections if port forwarding is disabled
- MBean snapshots
- Multiple all object dumps
- Call tree snapshots in the "Call tree view"
- Filter and grouping scripts in the heap walker that operate on dumped data and also support snapshots
- Improved visual feedback for views with recorded data in snapshots and live mode
- Localizations for Japanese and Korean
- Improved process for handling a download failure of JProfiler agent archives for remote profiling
- Reloading call tree analysis now reloads ancestor analyses as well as descendant analysis
- Show thread IDs in the JProfiler UI
- Added labels for thread dumps
- The JProfiler agent now supports IPv6 addresses
- Bookmarks from previous recordings and deleted dumps are now cleaned up automatically
- Script filter actions in the outgoing references view of the heap walker are now always enabled, even if no top-level object is selected

Fixed:
- SSH tunnels: auto-detection of private key files in SSH wizard did not detect modern algorithms like ecdsa and ed25519
- Attach sessions started from IDE integrations did not have a name and no classpath and source path were configured
- In the class or package selection dialog, the previous selection was kept across sessions
- JFR snapshots: RAW_​NUMBER and RAW_​LONG units had an incorrect column type
- JFR recording: the JFR event configuration details were not shown when a selected JFR event was enabled
- JFR recording: selection behavior in the tree of JFR events was broken when a filter was entered
- Incoming references view did not have "More instances" hyperlinks for more than 100 incoming references on one level
- Bookmarks were only updated when the VM telemetries view or the thread history view were shown