Add async-profiler skill for Java profiling 🤖🤖🤖#1400
Add async-profiler skill for Java profiling 🤖🤖🤖#1400vetler wants to merge 1 commit intogithub:stagedfrom
Conversation
🔍 Skill Validator Results✅ All checks passed
Summary
Full validator output```text Found 1 skill(s) [async-profiler] 📊 async-profiler: 1,439 BPE tokens [chars/4: 1,511] (detailed ✓), 12 sections, 3 code blocks ✅ All checks passed (1 skill(s)) ``` |
There was a problem hiding this comment.
Pull request overview
Adds a new async-profiler skill under skills/async-profiler/ to guide Java developers through installing async-profiler, running profiling sessions (including agent-friendly background capture), and analyzing outputs (flamegraphs/JFR/collapsed stacks), and registers the skill in docs/README.skills.md.
Changes:
- Introduces async-profiler skill docs: setup, profiling workflows, and output analysis guidance.
- Adds helper scripts for install/run/background collection plus a Python collapsed-stack analyzer.
- Updates
docs/README.skills.mdto include the new skill entry.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/async-profiler/SKILL.md | Skill entry-point and routing to setup/profile/analyze sub-guides. |
| skills/async-profiler/README.md | Human-readable overview and installation notes. |
| skills/async-profiler/setup/SKILL.md | Installation/configuration instructions and troubleshooting. |
| skills/async-profiler/profile/SKILL.md | How to run profiles, including collect.sh background workflows. |
| skills/async-profiler/analyze/SKILL.md | How to interpret flamegraphs/JFR/collapsed stacks. |
| skills/async-profiler/scripts/install.sh | Platform-detecting async-profiler installer. |
| skills/async-profiler/scripts/run_profile.sh | Convenience wrapper for one-shot profiles + (intended) JFR splitting. |
| skills/async-profiler/scripts/collect.sh | Start/stop/timed background collection workflow with JFR splitting. |
| skills/async-profiler/scripts/analyze_collapsed.py | CLI analyzer for .collapsed files. |
| docs/README.skills.md | Adds the skill to the repository skills index. |
e97338d to
3fa7ee5
Compare
vetler
left a comment
There was a problem hiding this comment.
All 9 review comments have been addressed in an amended commit (3fa7ee5). Summary of changes:
python→python3inrun_profile.shpost-run guidancefrom __future__ import annotationsadded toanalyze_collapsed.pyto restore Python 3.7+ compatibility (PEP 585 generics)jfrconv --event alloc→jfrconv --allocinanalyze/SKILL.md- Install path comment in
install.shupdated to~/async-profiler-4.3 - Bash syntax in
collect.shsplit_jfr: separated& local pid_X=$!onto two lines asprof stopnow passes-f "$jfr_path"so on Linux the JFR lands at the expected path; macOS sentinel workaround is unchangedrun_profile.shcomprehensive mode fixed to use--cpu/--alloc/--wall/--lockinstead of--event cpuetc.collect.sh timeddocs corrected to-d 60 <PID>(flag before target)- Output filenames in
profile/SKILL.mdcorrected toprofile-cpu.html,profile-alloc.html, etc.
3fa7ee5 to
7204e5b
Compare
|
Fixed all 7 review comments:
|
7204e5b to
fd6e431
Compare
|
Fixed 3 of 4 review comments; the 4th is already handled:
|
|
@all-contributors add @vetler for skills |
|
I couldn't determine any contributions to add, did you specify any contributions? |
|
@all-contributors add @vetler for 🧰 |
|
I couldn't determine any contributions to add, did you specify any contributions? |
|
@all-contributors add @vetler for skill |
|
I couldn't determine any contributions to add, did you specify any contributions? |
fd6e431 to
b334294
Compare
b334294 to
15a0125
Compare
|
Fixed all 3 review comments:
|
15a0125 to
4ece50a
Compare
|
All 7 review comments from round 6 addressed:
All validated with |
|
@copilot review |
4ece50a to
634fa72
Compare
|
All 4 review comments from round 7 addressed:
All validated with |
634fa72 to
e23e43e
Compare
|
All 5 review comments from round 8 addressed:
All validated with |
Add skill for installing, running, and analyzing async-profiler for Java. Covers CPU/memory/allocation profiling, flamegraph capture and interpretation, JFR recordings, and common setup errors (e.g. perf_events). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
e23e43e to
5aeaf86
Compare
|
All 4 review comments from round 9 addressed:
All validated with |
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:
asprofCLI flags and syntaxasprof stop -foutput-path bug)-XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints)Structure
Validation
npm run skill:validate✅npm run build✅ (docs/README.skills.md updated)