async-profiler Java Profiler
github.com
1
Leaving SiteNav
External Link Disclaimer
You are about to visit github.com. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
async-profiler is a low-overhead sampling profiler for Java that tracks CPU, memory allocation, and lock contention without the performance penalties of traditional JVMTI-based profilers. Created by Andrei Pangin at Azul Systems, it has over 8,000 stars as of 2026. Unlike traditional Java profilers that use JVMTI (which can add 10-30% overhead and cause safepoint bias), async-profiler uses Linux perf_events and HotSpot-specific APIs with less than 1% overhead. Key features include: CPU profiling (sampling call stacks at configurable intervals using perf_events and HotSpot AsyncGetCallTrace for accurate stack walking, avoiding safepoint bias), allocation profiling (tracking memory allocations by intercepting HotSpot operations, identifying memory-hungry code paths and GC pressure sources), lock profiling (monitoring contended Java monitors and ReentrantLock instances, identifying thread contention), wall-clock profiling (profiling all threads including blocked ones, providing complete latency picture), multi-modal profiling (collecting CPU, allocation, and lock data simultaneously), flame graph output (HTML/SVG with jfr2flame converter), JFR output (Java Flight Recordings compatible with JDK Mission Control and IntelliJ Profiler), event-specific tracing (compilation, GC, class loading, and thread state changes), Agent API (programmatic profiling control via Java agent), and cross-platform support (Linux, macOS, and Windows via WSL).
Tags & Categories
Categories
Tags
Statistics
1
Views
0
Clicks
0
Like
0
Dislike