- Home
- Profiling Software
- async-profiler
async-profiler
What it is
async-profiler is a free sampling profiler for Java that is designed to keep overhead low and avoid safepoint bias. It works with OpenJDK and other Java runtimes based on the HotSpot JVM. Its stack traces can include non-Java threads along with native and kernel frames. Profiling targets include CPU time, Java-heap and native-memory allocations, memory leaks, contended locks, and hardware or software performance counters. Documented modes cover CPU, allocation, wall-clock, Java-method, and multiple-event profiling. Results can be saved as collapsed stacks, flame graphs, HTML tree views, or text, and an interactive Flame Graph can be viewed in a browser. Official builds are maintained for Linux and macOS on x64 and arm64. A Java API is available as a Maven dependency, and IntelliJ IDEA exposes the profiler through its Java Profiler settings. It can profile Java processes in Docker or LXC from inside a container or from the host. Building it requires make, GCC 7.5.0 or later or Clang 7.0.0 or later, static libstdc++, and JDK 11 or later.
For and against
For
- Profiles CPU, allocation, wall-clock, and Java-method activity.
- Stack traces can include native and kernel frames.
- Offers flame graph, HTML tree, collapsed-stack, and text outputs.
- Official builds are maintained for Linux and macOS.
- Can profile Java processes in Docker or LXC.
Against
- Official builds are listed for Linux and macOS only.
- Building requires GCC 7.5.0+ or Clang 7.0.0+, and JDK 11+.
- Nightly binaries for previous commits are retained for 30 days.
The verdict
async-profiler covers Java and native execution details and provides several profiling modes and output formats. Check its supported build platforms and build requirements if you need to compile it yourself.
Who it suits
async-profiler suits Java developers who need to inspect CPU, memory, locks, or performance counters on HotSpot-based runtimes. It may also fit teams profiling Java processes in Docker or LXC containers.
Plans and prices
Community open-source
Apache License 2.0 · Linux and macOS binaries
Read 1 Oct 2026 · github.com
On the record
- Build requirements
- Building requires make, GCC 7.5.0+ or Clang 7.0.0+, static libstdc++, and JDK 11+.github.com · read 1 Oct 2026
- Container profiling
- It can profile Java processes in Docker or LXC containers from inside the container or from the host system.github.com · read 1 Oct 2026
- IDE integration
- IntelliJ IDEA bundles async-profiler and exposes it through the Java Profiler settings.github.com · read 1 Oct 2026
- Java integration
- A Java API is published to Maven Central and can be used as a Maven dependency.github.com · read 1 Oct 2026
- Native visibility
- It monitors non-Java threads and shows native and kernel frames in stack traces.github.com · read 1 Oct 2026
- Nightly retention
- Nightly binaries for previous commits are kept for 30 days.github.com · read 1 Oct 2026
- Official builds
- Officially maintained builds are provided for Linux x64 and arm64 and macOS x64 and arm64.github.com · read 1 Oct 2026
- Output
- The profiler can save results as an interactive Flame Graph viewable in a browser.github.com · read 1 Oct 2026
- Output formats
- Supported output formats include collapsed stacks, flame graphs, HTML tree views, and text.github.com · read 1 Oct 2026
- Profiling modes
- The documentation lists CPU, allocation, wall-clock, Java-method, and multiple-events profiling modes.github.com · read 1 Oct 2026
- Profiling targets
- It can profile CPU time, Java-heap allocations, native-memory allocations and leaks, contended locks, and hardware or software performance counters.github.com · read 1 Oct 2026
- Purpose
- async-profiler is a low-overhead sampling profiler for Java that avoids the safepoint bias problem.github.com · read 1 Oct 2026
- Runtime support
- It works with OpenJDK and other Java runtimes based on the HotSpot JVM.github.com · read 1 Oct 2026
- Security reporting
- Security issues should be reported to AWS/Amazon Security through its vulnerability reporting page instead of a public GitHub issue.github.com · read 1 Oct 2026
- Span API
- The Span API records latency-sensitive intervals into the same JFR recording as profiling samples and is allocation-free.github.com · read 1 Oct 2026