Automic VaultAutomic Vault

brew

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

Additional install commands

macOS

Homebrewverified · 100%
brew install async-profiler

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install async-profiler

MacPorts ports tree · java/async-profiler/Portfile · source: api.github.com

Linux

Nixverified · 92%
nix profile install nixpkgs#async-profiler

nixpkgs package indexes · pkgs/by-name/as/async-profiler/package.nix · source: api.github.com

overview

Package summary

Sampling CPU & HEAP profiler for Java using AsyncGetCallTrace + perf_events

Commands and aliases

  • asprof
  • jfrconv

history

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.

security posture

Risk level: blue

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

Risk classifier

blue risk · medium confidence · tool

Why

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

Signals

  • text:sync

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 6 platform targets.
  • Build metadata lists 2 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
asprofcliglobal executable
jfrconvcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-07-08
manager version4.4
manager updated2026-06-22
local dataok
upstreamcurrent
latest detectedv4.4

https://github.com/async-profiler/async-profiler

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:async-profiler
Version4.4
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/async-profiler
Homepagehttps://github.com/async-profiler/async-profiler
Repositoryhttps://github.com/async-profiler/async-profiler
Upstream docshttps://github.com/async-profiler/async-profiler#readme
LicenseApache-2.0
Source archivehttps://github.com/async-profiler/async-profiler/archive/refs/tags/v4.4.tar.gz
Last updated2026-06-22T14:02:47-07:00
Pulseupdated
Build dependenciescmake, openjdk
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameasync-profiler
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

async-profiler

nix profile install nixpkgs#async-profiler
  • normalized package name match
  • Matched by: Async Profiler
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/as/async-profiler/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
MacPorts95%

async-profiler

sudo port install async-profiler
  • normalized package name match
  • Matched by: Async Profiler
MacPorts ports tree · api.github.com · MacPorts ports tree: java/async-profiler/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

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