Category: jprofiler

Development Sneak Peek: Dark Mode and HiDPI

A system-wide dark mode is coming to both macOS and Windows. That’s why we’re working on a dark mode for JProfiler as well. Based on the excellent Darcula Look and Feel from our friends at JetBrains, JProfiler will soon fit into this new world of dark background colors:

 

 

Moreover, support for fractional HiDPI is coming for Windows. If you are using a 4K monitor, you will be happy to hear that the blurry upscaled UI will be a thing of the past. This is not only true for dark mode: We will also be using the light look and feel from IntelliJ IDEA together with the JetBrains Runtime in order to provide the best experience for high screen resolutions. The light mode will be the new default look and feel for JProfiler.

 

 

JProfiler’s integration into IntelliJ IDEA

This screencast shows the JProfiler plugin for IntelliJ IDEA. A run configuration is profiled, source code navigation is discussed and the call graph data display in the IDE is shown.

Finding a memory leak with JProfiler

This screencast explains a basic strategy for solving memory leaks with JProfiler.

There is an older version of this screencast from 2009 that is not accurate for the heap walker anymore but that shows other useful features in JProfiler.

Complexity analysis in JProfiler

Complexity analysis in JProfiler is a tool for experimentally determining the Big-O behavior of algorithms based on the execution times of single selected methods. A bubble chart with curve fits of common complexities visualizes the results of the analysis.

Zero-configuration remote attach

This screen cast shows how to attach to a remote JVM with zero configuration on the remote side. The only requirement is an SSH connection to the remote machine. Remote JVMs are listed in the JProfiler UI and a JVM can be selected for profiling.

Analyzing specific parts of the call tree

This screen cast shows how the “Set root” action is used to analyze a specific part of your code. The “Set root” action in the call tree view is used to select the call stack of interest. The hot spot view and the call graph then only show data for the selected part of the call tree.

Analyzing incoming and outgoing calls of a method

This screen cast shows how to use the call tree analyses to analyze both the cumulated outgoing calls of all top-level invocations of a selected method as well as to calculate the back traces of all its invocations. The results of the analyses are compared with the call graph that shows a combined view of incoming and outgoing calls.

Collapsing recursions in the call tree

This screen cast shows how to use the “Collapse recursions” call tree analysis to better understand recursive call trees. Recursive calls are stitched back to the topmost call of a method. Recursive call counts, merged stack counts as well as moved parts of the call tree are marked in the analysis view.

Remote profiling through an SSH tunnel

JProfiler has built-in SSH tunneling for direct and multi-hop SSH connections. This is useful for situations where you do not have a direct network connection to the machine where the profiled JVM is running. The screen cast shows how to configure the SSH tunnel and prepare the remote Java process for profiling.

Finding JDBC connection leaks

This screen cast shows how to detect JDBC connection leaks and find out where they’re coming from. JDBC connection leak analysis is integrated into JProfiler’s JDBC probe and has its own view. If a connection leak is detected, the stack trace and other information will help you to pinpoint the origin of the leak.