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...
View ArticleAnalyzing 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...
View ArticleAnalyzing 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 ArticleComparing install4j to other deployment solutions
Samuel Ruggieri from Voyager Games has written an interesting article comparing install4j against Java Web Start and other installer builders. His conclusion is this: “At the end of this adventure, I...
View ArticleZero-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...
View ArticleComplexity 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...
View ArticleFinding 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...
View ArticleJProfiler’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.
View ArticleMigrating to install4j 7
In nearly all cases, migrating to install4j 7 just means opening and saving your project with the install4j 7 IDE. Nevertheless, there are some considerations with respect to backwards compatibility...
View ArticleRefreshed JProfiler IDEA plugin for the new UI
Categories: JProfiler Kotlin 2.0 features a total rewrite of the Kotlin compiler known as "Kotlin K2". IntelliJ IDEA will remove support for the old compiler in version 2024.3 impacting all plugins...
View ArticleMigrating to install4j 11.0
Categories: install4jMigration In most cases, migrating to install4j 11 involves simply opening and saving your project with the install4j 11 IDE. Nevertheless, there are some considerations with...
View ArticleNamespace awareness of XML actions in install4j
Categories: install4j This post explains an exceptional backward-incompatibility in the install4j 10.0.9 release. This was necessary due to a change in install4j 10.0.8 that was intended to fix the...
View ArticleWhy JVMTI sampling is better than async sampling on modern JVMs
Categories: GeneralJProfiler In recent years, "async sampling" has been hyped as a better way of CPU profiling on the JVM. While this has been true for some time, it is no longer the case. This blog...
View ArticleHow invokedynamic makes lambdas fast
Categories: General Recently, we have been at work rewriting our website in Kotlin. Instead of a view technology that uses string templates with embedded logic, we now use the Kotlin HTML builder to...
View ArticleGarbage collector analysis in JProfiler
Categories: JProfilerScreencast This screencast shows how to use the garbage collector probe in JProfiler. Having access to detailed information about the overall activity of the GC, as well as the...
View ArticleRecording JFR snapshots with JProfiler
Categories: JProfilerScreencast Recording JFR snapshots with JProfiler This screencast shows JProfiler's versatile functionality as a JFR recording controller. As an example, a JFR recording on a...
View ArticleEnhanced JFR snapshot analysis with JProfiler
Categories: JProfilerScreencast JProfiler has excellent support for viewing JFR snapshots. This screencast focuses on the event browser, which is specific to JFR snapshots, and also gives an overview...
View ArticleWorking with probe events in JProfiler
Categories: JProfilerScreencast Probe events are of great help in debugging specific performance problems. To find events of interest, JProfiler gives you a lot of tools to narrow down the set of...
View ArticleCustomizing telemetries in JProfiler
Categories: JProfilerScreencast Telemetries are an essential feature for a profiler, they help you get an idea about when things happen in the profiled JVM, and how various subsystems are correlated....
View ArticleImproved Kubernetes authentication handling in JProfiler
Categories: General Since version 13, JProfiler supports profiling on Kubernetes clusters with no extra configuration. JProfiler 13.0.6 added an important improvement for profiling a JVM in Kubernetes...
View ArticleProfiling JEE/Spring applications
Categories: JProfilerScreencast This screencast showcases JProfiler's support for JEE and Spring, in particular the JEE/Spring component detection and the JEE/Spring aggregation level in the call tree...
View ArticleProfiling Java applications in a Kubernetes cluster
Categories: JProfilerScreencast This screencast shows how you can profile JVMs running in Kubernetes cluster with JProfiler. A profiling session with a note taking demo application sessions is started...
View ArticleProfiling Java applications in Docker containers
Categories: JProfilerScreencast This screencast shows how to use JProfiler to profile a JVM that is running in a Docker container. JProfiler has dedicated zero-configuration support for attaching to...
View ArticleUsing sunburst diagrams for understanding Java memory consumption
Categories: JProfilerScreencast This screencast shows how to use the sunburst diagram in the biggest objects view of JProfiler's heap walker to visualize memory consumption of your Java application....
View ArticleUsing flame graphs when profiling Java applications
Categories: JProfilerScreencast Flame graphs are a great way to get an overview of the entire call tree and to visualize performance characteristics. This screen cast shows how the jclasslib bytecode...
View ArticleProfiling a Netty server
Categories: JProfilerScreencast JProfiler's support for Netty covers many modern web frameworks that use Netty under hood, like Vert.x, Micronaut, Ktor or Spring WebFlux. This screen cast shows how to...
View ArticleInlining asynchronous executions in JProfiler's call tree
Categories: JProfilerScreencast This screencast shows how to use the "Inline async executions" call tree analysis to get a unified call tree across thread boundaries This is made possible by JProfiler...
View ArticleProfiling HTTP calls and tracking them between JVMs
Categories: JProfilerScreencast This screen cast shows how to profile HTTP calls with the HTTP client probe and use the HTTP remote request tracking feature to follow HTTP calls from one JVM into...
View ArticleWorking with merged reference trees in JProfiler
Categories: JProfilerScreencast This screen cast shows how to analyze memory leaks in Java applications or reduce memory consumption in general if the objects of interest are not all referenced in the...
View ArticleHow to configure a script probe in JProfiler
Categories: JProfilerScreencast This screen cast shows how to configure a script probe for a Java profiling session in JProfiler. Script probes are custom probes that intercept selected methods and...
View ArticleMigrating to install4j 10.0
Categories: install4jMigration In nearly all cases, migrating to install4j 10 just means opening and saving your project with the install4j 10 IDE. Nevertheless, there are some considerations with...
View ArticleNew web license service and improvements for the on-premises server
Categories: General Customers with floating licenses now have more flexibility: Starting with with the most recent releases of JProfiler and install4j, we now offer a web license service, so you do not...
View ArticleMigrating to install4j 9
Categories: install4jMigration In nearly all cases, migrating to install4j 9 just means opening and saving your project with the install4j 9 IDE. Nevertheless, there are some considerations with...
View ArticleSupport for macOS Apple Silicon
Categories: General Please note: Several JDK providers now offer the macos-aarch64 architecture and there is no need anymore to create the bundle yourself, install4j can do this for you automatically....
View ArticleMigrating to install4j 8
Categories: install4jMigration In nearly all cases, migrating to install4j 8 just means opening and saving your project with the install4j 8 IDE. Nevertheless, there are some considerations with...
View ArticleAutomation sandboxing in macOS 10.14
Categories: install4j macOS 10.14 introduces automation sandboxing as part of a new push for security. This change impacts installers generated with install4j prior to 7.0.8, because they use...
View ArticleDevelopment Sneak Peek: Dark Mode and HiDPI
Categories: JProfiler 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...
View ArticleStricter time-stamp validation on macOS 10.14
Categories: install4j Today we released an install4j emergency release for macOS 10.14 that fixes a problem with code signing. Previous versions of install4j used time stamp validation during...
View ArticleImprovements for macOS App Store submissions in install4j 11.0.2
Categories: install4j install4j 11.0.2 introduces several new features to simplify macOS App Store submissions, including automated entitlement handling for TestFlight, improved support for local...
View ArticleProfiling Kafka #1 – Message Flow & Hot Spots
Categories: JProfilerScreencastKafka-based applications are notoriously hard to profile. Message flow happens in background threads, stack traces don’t reveal the full picture, and it’s hard to know...
View ArticleBringing JProfiler to VS Code with Kotlin Multi-Platform
Categories: JProfiler At ej-technologies, we've long provided JProfiler integrations for Java IDEs like IntelliJ, Eclipse, and NetBeans. These plugins share a significant amount of logic—profiler...
View ArticleCaching auto-provisioned install4j distributions in CI pipelines
Categories: install4j Starting with install4j 11.0, integrating install4j into your build system has become much easier: The Gradle, Maven, and Ant plugins can now auto-provision the install4j...
View ArticleCross-platform JRE bundle creation under threat from JEP 493
Categories: install4j One of the most valuable capabilities introduced with the Java module system in Java 9 is its support for creating custom runtime images with jlink. Developers can include only...
View ArticleAdvanced Kafka probe configuration in JProfiler
Categories: JProfilerScreencast In our first Kafka screencast, we looked at how JProfiler correlates message flow and CPU usage through producers, consumers, and topic-level call trees.In this...
View ArticleProfiling Java applications in VS Code with JProfiler
Categories: JProfilerScreencast JProfiler now integrates directly into VS Code, bringing the powerful profiling tool into your everyday development workflow. In this screencast, we profile the Spring...
View ArticleAdvanced SSH remote profiling with JProfiler
Categories: JProfilerScreencast Remote profiling can be challenging when SSH access involves custom setups, proxies, or cloud authentication plugins. JProfiler 15 introduces advanced SSH connection...
View ArticleCapturing and comparing MBean states with JProfiler
Categories: JProfilerScreencast MBeans expose a wide range of runtime metrics and management operations that are essential for understanding the internal state of Java applications. Traditionally,...
View ArticleHeap Walker scripting for snapshot analysis
Categories: JProfilerScreencast Previously, JProfiler's heap walker only offered advanced filtering and grouping features in live sessions. With JProfiler 15, the heap walker introduces full support...
View ArticleJVM performance watch roundup April 2025
Categories: Roundup I post notes on JVM performance-related news on social media whenever a patch, JEP, or benchmark catches my eye. This blog post collects everything shared in April 2025. Each...
View ArticleJProfiler tips roundup April 2025
Categories: Roundup I regularly share practical advice and insights on JProfiler and install4j on social media, covering features, shortcuts, and use cases. This blog post collects everything shared in...
View Article