async-profiler
A low-overhead sampling profiler for the JVM, commonly used as the collection agent feeding continuous profiling backends.
Last updated
async-profiler is a low-overhead sampling profiler for Java and other JVM-based languages, capable of capturing CPU, allocation, lock contention, and wall-clock profiles without the safepoint bias that affects older JVM profiling tools. It works by sampling using perf_events on Linux or a native JVM API, rather than relying solely on instrumentation.
Rather than being a standalone dashboard, it’s most often used as the collection agent underneath a continuous profiling backend — tools like Grafana Pyroscope and several commercial profilers use async-profiler (or a fork of it) internally to capture JVM profiles.
Visit the project’s GitHub repository for build instructions and supported profiling modes.