Skip to content

Add async-profiler skill for Java profiling 🤖🤖🤖#1400

Open
vetler wants to merge 33 commits intogithub:stagedfrom
vetler:add-async-profiler-skill-staged
Open

Add async-profiler skill for Java profiling 🤖🤖🤖#1400
vetler wants to merge 33 commits intogithub:stagedfrom
vetler:add-async-profiler-skill-staged

Conversation

@vetler
Copy link
Copy Markdown

@vetler vetler commented Apr 15, 2026

What this adds

A skill for installing, running, and analyzing async-profiler for Java — a low-overhead sampling profiler that produces flamegraphs, JFR recordings, and allocation profiles.

Why it's useful

async-profiler is a niche, specialized tool with platform-specific quirks that frontier models don't reliably handle:

  • Exact asprof CLI flags and syntax
  • macOS-specific limitations (itimer vs perf_events, asprof stop -f output-path bug)
  • JVM flags required for accurate profiles (-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints)
  • Specific version/download URLs
  • How to interpret flamegraph patterns (GC pressure, N+1 Hibernate, lock contention)

Structure

skills/async-profiler/
├── SKILL.md                      # Entry point — routes to focused guides
├── README.md                     # Human-readable overview
├── references/
│   ├── setup.md                  # Installation and configuration
│   ├── profile.md                # Running profiling sessions
│   └── analyze.md                # Interpreting profiling output
└── scripts/
    ├── install.sh                # Platform auto-detect installer
    ├── run_profile.sh            # asprof wrapper with timestamped output
    ├── collect.sh                # Background start/stop collection
    └── analyze_collapsed.py      # Ranked self-time table for .collapsed files

Validation

  • npm run skill:validate
  • npm run build

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants