Skip to content
SPECIFICTION
Get listed

async-profiler

github.com

Free plan macOSLinuxAPI
Visit github.com
Spec score 8.1 #7 of 29 in Profiling Software

What it is

async-profiler is a free, self-hosted sampling profiler for Java designed to keep overhead low and avoid safepoint bias. It works with OpenJDK and other runtimes based on the HotSpot JVM, and stack traces can include non-Java threads as well as native and kernel frames. It profiles CPU time, Java-heap and native-memory allocations, memory leaks, contended locks, and hardware or software performance counters. Documented modes include CPU, allocation, wall-clock, Java-method, and multiple-events profiling. Results can be saved as collapsed stacks, flame graphs, HTML tree views, or text; an interactive Flame Graph can be viewed in a browser. Officially maintained builds are available for Linux and macOS on x64 and arm64. Developers can use the Java API as a Maven dependency, and IntelliJ IDEA includes async-profiler in 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.

Spec sheet

Purpose
async-profiler is a low-overhead sampling profiler for Java that avoids the safepoint bias problem.Read 1 Oct 2026 · github.com
Build requirements
Building requires make, GCC 7.5.0+ or Clang 7.0.0+, static libstdc++, and JDK 11+.Read 1 Oct 2026 · github.com
Container profiling
It can profile Java processes in Docker or LXC containers from inside the container or from the host system.Read 1 Oct 2026 · github.com
IDE integration
IntelliJ IDEA bundles async-profiler and exposes it through the Java Profiler settings.Read 1 Oct 2026 · github.com
Java integration
A Java API is published to Maven Central and can be used as a Maven dependency.Read 1 Oct 2026 · github.com
Native visibility
It monitors non-Java threads and shows native and kernel frames in stack traces.Read 1 Oct 2026 · github.com
Nightly retention
Nightly binaries for previous commits are kept for 30 days.Read 1 Oct 2026 · github.com
Official builds
Officially maintained builds are provided for Linux x64 and arm64 and macOS x64 and arm64.Read 1 Oct 2026 · github.com
Output
The profiler can save results as an interactive Flame Graph viewable in a browser.Read 1 Oct 2026 · github.com
Output formats
Supported output formats include collapsed stacks, flame graphs, HTML tree views, and text.Read 1 Oct 2026 · github.com
Profiling modes
The documentation lists CPU, allocation, wall-clock, Java-method, and multiple-events profiling modes.Read 1 Oct 2026 · github.com
Profiling targets
It can profile CPU time, Java-heap allocations, native-memory allocations and leaks, contended locks, and hardware or software performance counters.Read 1 Oct 2026 · github.com
Runtime support
It works with OpenJDK and other Java runtimes based on the HotSpot JVM.Read 1 Oct 2026 · github.com
Security reporting
Security issues should be reported to AWS/Amazon Security through its vulnerability reporting page instead of a public GitHub issue.Read 1 Oct 2026 · github.com
Span API
The Span API records latency-sensitive intervals into the same JFR recording as profiling samples and is allocation-free.Read 1 Oct 2026 · github.com

Plans and prices

Community open-source Free No charge Apache License 2.0 · Linux and macOS binaries Read 1 Oct 2026 · github.com

Every async-profiler plan and price →

Strong points and limits

Strong points

  • Free under Apache License 2.0.
  • Profiles CPU, allocations, locks, and performance counters.
  • Stack traces can show native and kernel frames.
  • Provides maintained Linux and macOS builds.
  • Can profile Java processes in Docker or LXC.

Limits

  • Official builds are listed for Linux and macOS only.
  • Building requires JDK 11 or later.
  • Building requires GCC 7.5.0+ or Clang 7.0.0+.

Who it suits

It suits developers investigating Java CPU, memory, lock, or wall-clock behavior, including those working with HotSpot-based runtimes. Its container support and multiple output formats may also suit teams profiling Java processes in Docker or LXC.

Verdict

async-profiler offers broad profiling targets and several ways to inspect results at no charge. Check its build requirements and platform support if maintained binaries do not fit your setup.

Where Specifiction places it

Alternatives to async-profilerAll alternatives →