The award-winning all-in-one Java profiler for Mac

JProfiler for Mac

JProfiler for Mac

  -  156.86 MB  -  Trial
  • Latest Version

    JProfiler 14.0.3 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    macOS 10.12 Sierra or later

  • User Rating

    Click to vote
  • Author / Product

    ej-technologies GmbH / External Link

  • Filename

    jprofiler_macos_14_0_3.dmg

  • MD5 Checksum

    0825a26cde6e53e9cb9c03cec1816efb

JProfiler for Mac'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 for macOS 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 for Mac.

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.

Note: 10 days trial version.

Also Available: Download JProfiler for Windows

What's new in this version:

New features:
- Security change: If the "address" option is not specified for the -agentpath parameter, the JProfiler agent will only listen on the loopback interface
- Security change: By default, the command line utility jpenable will now prepare a JVM for profiling in such a way that only local connections are allowed. jpenable has a new -a option to listen on all network interfaces instead.
- Security change: Integration wizards will no longer suggest to configure unencrypted direct TCP connections to remote machines but use SSH connections by default
- Security change: The default connection type of a new profiling session is now "Local TCP connection". The old remote TCP connection is discouraged, but is still available with the "Unsecured TCP connection" connection type.
- Improved the ability to open truncated HPROF files

Fixed:
- Connecting to a Docker or Kubernetes container did not work if the home directory was mounted with the noexec option
- When connecting to Kubernetes containers, JProfiler used to query containers in all namespaces, which could take a very long time. Now, only namespaces that are opened in the tree are queried.