Java Performance Tuning

Java(TM) - see bottom of page

|home |services |training |newsletter |tuning tips |tool reports |articles |resources |about us |site map |contact us |
Tools: | GC log analysers| Multi-tenancy tools| Books| SizeOf| Thread analysers| Heap dump analysers|

Our valued sponsors who help make this site possible
JProfiler: Get rid of your performance problems and memory leaks! 

Training online: Concurrency, Threading, GC, Advanced Java and more ... 

News May 2025

JProfiler
Get rid of your performance problems and memory leaks!

Modern Garbage Collection Tuning
Shows tuning flow chart for GC tuning


Java Performance Training Courses
COURSES AVAILABLE NOW. We can provide training courses to handle all your Java performance needs

Java Performance Tuning, 2nd ed
The classic and most comprehensive book on tuning Java

Java Performance Tuning Newsletter
Your source of Java performance news. Subscribe now!
Enter email:


Training online
Threading Essentials course


JProfiler
Get rid of your performance problems and memory leaks!


Back to newsletter 294 contents

All the official JVM supported sampling mechanisms happen at safepoints, where the JVM has moved threads to a well defined state (a state "safe" to ask about because it's defined and consistent). This lead many profilers to having safepoint biases - that's the tendency to miss out on things that happen when the threads are not at safepoints. This leads to these types of profilers giving misleading profiles in a variety of situations. All this has long been known, and many profilers addressed this shortcoming by avoiding safepoint bias.

Historically profilers that wanted to avoid safepoint bias used AsyncGetCallTrace - a non-standard internal JVM capability that's had multiple bugs over the years and has never been fully stable. AsyncGetCallTrace has never been an official JVM API and is prone to crash the JVM. There was an attempt (JEP 435) to provide a supported equivalent API, but that didn't succeed. Instead, the latest development is that profilers are simply removing the AsyncGetCallTrace dependency, and doing the equivalent work directly. For example both async-profiler and eBPF profilers have implemented their own stack walking mechanisms. This actually gives more information with greater stability, so is better in every way - but it's taken a while to develop. It's pretty interesting how profilers continue to innovate!

Now on to all the usual newsletter list of links, tips, tools, news and talks, and as usual I've extracted all the tips into this month's tips page.

A note from this newsletter's sponsor

JProfiler
Get rid of your performance problems and memory leaks!

News

Java performance tuning related news

Tools

Java performance tuning related tools

Articles

Jack Shirazi


Back to newsletter 294 contents


Last Updated: 2025-05-29
Copyright © 2000-2025 Fasterj.com. All Rights Reserved.
All trademarks and registered trademarks appearing on JavaPerformanceTuning.com are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. JavaPerformanceTuning.com is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
URL: http://www.JavaPerformanceTuning.com/news/news294.shtml
RSS Feed: http://www.JavaPerformanceTuning.com/newsletters.rss
Trouble with this page? Please contact us