pkg.soopen package index

brew / rank 5710

Install async-profiler with Homebrew, MacPorts, Nix

Sampling CPU & HEAP profiler for Java using AsyncGetCallTrace + perf_events. Version 4.5 via Homebrew; verified 2026-07-20. Also installable with nix: nix profile install nixpkgs#async-profiler.

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 bottle metadata was recorded.

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
asprofexecutableindexed executableDiscovered from the local executable index.
jfrconvexecutableindexed executableDiscovered from the local executable index.

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-08-03
manager version4.5
manager updated2026-07-20
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:async-profiler
Version4.5
Package managerHomebrew
Homepagehttps://github.com/async-profiler/async-profiler
Repositoryhttps://github.com/async-profiler/async-profiler
Last updated2026-07-20T23:29:47Z
Pulseupdated
Bottlenot recorded
Servicenone declared

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
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • pkg.so package database
  • pkgdb category and tag curation