Java profiling across JVM boundaries
This screen cast shows “Remote request tracking” in JProfiler. It makes it possible to profile business transactions that span multiple JVMs. Here, a web service call to another JVM is shown and...
View ArticleIntroducing perfino
Today we’re releasing a major new product: perfino is a JVM monitoring tool for in-production use. Over the years, we have lost count of the number of times that our customers have asked us on how to...
View ArticleThe v2 signature scheme for application bundles on Mac OS X 10.9.5+
Apple has decided to introduce a new signing scheme in the upcoming Mac OS X 10.9.5 maintenance release. The good news is that the new signature is much better from a security point of view. The...
View ArticleMigrating to install4j 6
In nearly all cases, migrating to install4j 6 just means opening and saving your project with the install4j 6 IDE. Nevertheless, there are some considerations with respect to backwards compatibility...
View ArticleTracking JavaScript calls into your Java backend
This screen cast shows how to split your Java call tree for different JavaScript XHR calls. By installing the JProfiler Chrome plugin, a locally running JProfiler GUI will be notified of XHR calls in...
View ArticleMulti-level HTTP request splitting
This screen cast shows how JProfiler can split HTTP requests by the return values of scripts into multiple levels. This functionality allows you to both get a better overview as well as a more...
View ArticleMethod splitting by parameter values
This screen cast shows how to split selected methods in the call tree by their parameter values. Directly in the call tree, you can select methods and set up scripts whose return values are used for...
View ArticleJProfiler’s MBean browser
JProfiler has an MBean browser that shows you MBean attributes and operations. Many frameworks and libraries publish statistics and expose configuration interfaces via JMX. With JProfiler, no...
View ArticleCustom telemetries in JProfiler
This screen cast shows how to quickly add new telemetries to JProfiler. MBean telemetries draw their data from numeric attributes of MBeans that are published in the profiled JVM. Script telemetries...
View ArticleFinding 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...
View ArticleRemote 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...
View ArticleCollapsing 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 Article