# Install async-profiler with Homebrew, MacPorts, Nix

Sampling CPU & HEAP profiler for Java using AsyncGetCallTrace + perf_events. Version 4.4 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:async-profiler
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install async-profiler
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install async-profiler
```

  Evidence: MacPorts ports tree: java/async-profiler/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#async-profiler
```

  Evidence: nixpkgs package indexes: pkgs/by-name/as/async-profiler/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:async-profiler
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/async-profiler>
- **Version:** 4.4
- **Source summary:** Sampling CPU & HEAP profiler for Java using AsyncGetCallTrace + perf_events
- **Homepage:** <https://github.com/async-profiler/async-profiler>
- **Repository:** <https://github.com/async-profiler/async-profiler>
- **Upstream docs:** <https://github.com/async-profiler/async-profiler#readme>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/async-profiler/async-profiler/archive/refs/tags/v4.4.tar.gz>
- **Last updated:** 2026-06-22T14:02:47-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- asprof (cli)
- jfrconv (cli)
- asprof (alias)
- jfrconv (alias)

## Build dependencies

- cmake
- openjdk

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 4.4
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/async-profiler/async-profiler
- Upstream latest detected: v4.4 (current)
## Project history and usage

async-profiler is a low-overhead sampling profiler for HotSpot-based Java runtimes. Its package-manager identity is unusually strong because the everyday tool is a small native CLI, `asprof`, that produces artifacts Java engineers already trade around: flame graphs, collapsed stacks, JFR recordings, traces, trees, heatmaps, and converter outputs.

### Project history

The project started in 2016 with an initial proof of concept for profiling Java without the safepoint bias that affected many traditional JVM profilers. The README describes the core design as combining HotSpot-specific stack collection with native facilities such as perf events, so it can show Java frames alongside native, kernel, GC, and JIT compiler activity.

Over time async-profiler grew from a CPU sampler into a broader observability utility. Official documentation now covers CPU, allocation, native memory, lock, wall-clock, hardware/software counter, container, Java Flight Recorder, FlameGraph, OTLP, pprof, and converter workflows.

### Adoption history

The project became a default recommendation in the JVM performance community because it is scriptable, produces portable output, and does not require a heavyweight GUI profiler. The package is distributed through Homebrew, MacPorts, and Nix in the supplied package metadata, while upstream publishes Linux and macOS binaries plus nightly builds from GitHub Actions.

Recent 4.x releases show continued production-oriented maintenance rather than archival status: v4.3 added native lock profiling, latency filtering, Prometheus-format metrics, and Java-agent/JMX control, while v4.4 added differential flame graphs and call-trace memory limits.

### How it is used

The normal package-manager workflow is to install the CLI and run `asprof` against a live JVM PID, for example saving a 30-second profile to an HTML flame graph. More advanced workflows attach it as a Java agent, run continuous loops, emit JFR/OTLP/pprof-compatible data, or convert recordings with the bundled converter tooling.

### Why package nerds care

async-profiler is one of those packages whose formula matters more than its size suggests: a native tool with JVM-specific privileges, OS-specific packaging, architecture-specific binaries, and output formats that plug into a large performance-debugging ecosystem. It is also a good example of a CLI package that package managers make discoverable to users who otherwise would only encounter it through conference talks or performance postmortems.

### Timeline

- 2016: Initial Git commit and proof-of-concept async profiler work.
- v1.x: Early public release series established the standalone profiler package.
- 2026: v4.3 added native lock profiling, latency filtering, Prometheus metrics, and Java-agent/JMX control.
- 2026: v4.4 added differential flame graphs and further FlameGraph/JFR/OTLP improvements.

### Related projects

- The project sits near HotSpot, Linux perf events, Java Flight Recorder, Brendan Gregg-style FlameGraphs, OpenTelemetry, and pprof-style profiling workflows.

### Sources

- Official git metadata from https://github.com/async-profiler/async-profiler.git
- <https://github.com/async-profiler/async-profiler#readme>
- <https://github.com/async-profiler/async-profiler/releases.atom>
- <https://github.com/async-profiler/async-profiler/tree/master/docs>


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** async-profiler
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - async-profiler: normalized package name match | nixpkgs package indexes: pkgs/by-name/as/async-profiler/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- MacPorts - async-profiler: normalized package name match | MacPorts ports tree: java/async-profiler/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [openjdk](https://www.automicvault.com/pkg/brew/openjdk/) - Build dependency declared by Homebrew.
- [gcviewer](https://www.automicvault.com/pkg/brew/gcviewer/) - Shares av.db curated category or tags: cli, developer-tools, java, performance.
- [jhiccup](https://www.automicvault.com/pkg/brew/jhiccup/) - Shares av.db curated category or tags: cli, developer-tools, java, performance.
- [py-spy](https://www.automicvault.com/pkg/brew/py-spy/) - Shares av.db curated category or tags: cli, developer-tools, performance, profiler.
- [samply](https://www.automicvault.com/pkg/brew/samply/) - Shares av.db curated category or tags: cli, developer-tools, performance, profiler.
- [sysprof](https://www.automicvault.com/pkg/brew/sysprof/) - Shares av.db curated category or tags: cli, developer-tools, performance, profiler.
- [tracy](https://www.automicvault.com/pkg/brew/tracy/) - Shares av.db curated category or tags: cli, developer-tools, performance, profiler.
- [alp](https://www.automicvault.com/pkg/brew/alp/) - Shares av.db curated category or tags: cli, developer-tools, profiler.
- [amdatu-bootstrap](https://www.automicvault.com/pkg/brew/amdatu-bootstrap/) - Shares av.db curated category or tags: cli, developer-tools, java.

## Combined YAML source

View the package source record on GitHub. [combined/async-profiler.yml](https://github.com/automic-vault/db/blob/main/combined/async-profiler.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
