К основному содержанию
скилл CX Codex

flamegraphs — скилл для Claude Code: что делает и как установить

Помогает собирать SVG-флеймграфы из данных профилировщиков и находить узкие места по ширине и высоте фреймов в стеке.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mohitmishra786/low-level-dev-skills --skill flamegraphs -a claude-code
Открыть на GitHub

Что делает flamegraphs

Скилл даёт ассистенту инструкции по конвертации сырых трейсов в интерактивные SVG-диаграммы. Внутри описаны пайплайны для Linux perf, Valgrind Callgrind, Go pprof, DTrace и Java async-profiler. Агент подскажет, как свернуть стек с помощью скриптов stackcollapse-*.pl и передать результат в flamegraph.pl.

Для работы придётся вручную склонировать репозиторий Brendan Gregg FlameGraph и прописать путь к нему в переменную $PATH, так как сам скилл эти Perl-скрипты не устанавливает. Это важно учесть до запуска команд профилирования.

Отдельный блок посвящён чтению графиков и дифференциальному анализу. Модель объяснит, почему широкое плато на вершине стека указывает на конкретную листовую функцию, а также сформирует красно-синий дифференциальный флеймграф через difffolded.pl для сравнения двух версий программы.

Какие задачи решает

  • перевести вывод perf или Callgrind в интерактивный SVG
  • найти узкие места по широким вершинам стека вызовов
  • сравнить профили до и после правок через difffolded.pl
  • подобрать параметры палитры и фильтрации для flamegraph.pl

Примеры запросов агенту

  • Как сгенерировать флеймграф из данных perf?
  • Что означает широкий фрейм на вершине графика?
  • Помоги сравнить два профиля before.data и after.data через дифференциальный флеймграф

Как установить flamegraphs

1Через Skills CLI (Vercel)

npx skills add mohitmishra786/low-level-dev-skills --skill flamegraphs -a claude-code

2Вручную: положить файлы

~/.claude/skills/flamegraphs/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/flamegraphs/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора59

linux-perf Ведёт агента по perf на Linux: сэмплирование, счётчики железа, поиск горячих функций и сборка флеймграфов. Полезен, когда программа тормозит, а непонятно где. CX Codex +1 753установок gcc Подсказывает агенту флаги GCC для debug и release, разбирает ошибки компиляции и настраивает LTO с PGO. CX Codex +1 690установок cross-gcc Проведёт агента через настройку кросс-компиляции на GCC: триплеты, sysroot, pkg-config, тесты под QEMU и разбор типовых ошибок. CX Codex +1 682установок valgrind Ведёт агента по инструментам Valgrind: Memcheck ищет утечки и use-after-free, Cachegrind и Callgrind показывают промахи кэша и граф вызовов, Massif — рост кучи. CX Codex +1 678установок assembly-arm Скилл, который помогает агенту читать и писать ассемблер AArch64 и ARM Thumb: регистры, соглашения вызова, инлайн-asm и NEON. CX Codex +1 656установок cpu-cache-opt Разбирает промахи кэша, ложное разделение и раскладку данных. Пригодится, когда профилировщик показывает высокий cache miss rate. CX Codex +1 654установок make Скилл ведёт агента по идиоматичным Makefile: pattern-правила, автоотслеживание зависимостей, разбор ошибок make. CX Codex +1 649установок simd-intrinsics Скилл ведёт агента через ручную векторизацию: чтение отчётов авто-векторизации, интринсики SSE2/AVX2/NEON и проверка флагов CPU в рантайме. CX Codex +1 645установок

Похожие

perf-profiler composio-community Скилл запускает утилиты профилирования, находит узкие места по процессору и памяти и формирует флейм-графики с точной привязкой к строкам кода. CX Codex +1 1 600установок pyroscope grafana Скилл для непрерывного профилирования приложений через Grafana Pyroscope: флейм-графы CPU, памяти и аллокаций прямо в диалоге с агентом. CX Codex +1 4 700установок workers-profiling cloudflare Скилл для анализа использования CPU и памяти в развёрнутых Cloudflare Workers и Durable Objects. Помогает найти узкие места в коде и предложить оптимизацию. CX Codex +1 13 000установок wp-performance WordPress Скилл помогает диагностировать и устранять проблемы с производительностью WordPress через консоль и WP-CLI без открытия браузера. CX Codex +1 6 100установок performance-engineer sickn33 Скилл для агента: ищет узкие места по трейсам и профилям, ставит нагрузочные тесты и проверяет, что после правок стало быстрее. CX Codex +1 918установок memory-leak-detection aj-geddes Скилл помогает найти и починить утечки памяти: heap-снимки, профилирование, разбор типичных причин роста потребления. CX Codex +1 580установок

Рядом в теме «Бэкенд и API»

Всё по теме «Бэкенд и API» →

Вопросы о flamegraphs

Как установить flamegraphs в Claude Code?

Выполните команду npx skills add mohitmishra786/low-level-dev-skills --skill flamegraphs -a claude-code.

Что делает скилл flamegraphs?

Он объясняет агенту шаги обработки данных профилировщиков, синтаксис скриптов FlameGraph и правила поиска горячих участков кода по форме стека.

Что нужно подготовить перед генерацией флеймграфов?

Требуется склонировать репозиторий Brendan Gregg FlameGraph на локальную машину и добавить папку со скриптами в системный $PATH.

Исходный текст

SKILL.md · MIT
---
name: flamegraphs
description: Flamegraph generation and interpretation skill. Use when converting perf, Valgrind Callgrind, or other profiler output into SVG flamegraphs using Brendan Gregg's FlameGraph tools, or when reading flamegraphs to identify performance bottlenecks. Activates on queries about flamegraphs, stackcollapse, flamegraph.svg, identifying hot frames, wide vs tall frames, or performance visualisation.
---

# Flamegraphs

## Purpose

Guide agents through the pipeline from profiler data to SVG flamegraph, and teach interpretation of flamegraphs to drive concrete optimisation decisions.

## Triggers

- "How do I generate a flamegraph from perf data?"
- "How do I read a flamegraph?"
- "The flamegraph shows a wide frame — what does that mean?"
- "How do I generate a flamegraph from Callgrind?"
- "I want to compare two flamegraphs (before/after)"

## Workflow

### 1. Install FlameGraph tools

```bash
git clone https://github.com/brendangregg/FlameGraph
# No install needed; scripts are in the repo
export PATH=$PATH:/path/to/FlameGraph
```

### 2. perf → flamegraph (most common path)

```bash
# Step 1: record
perf record -F 999 -g -o perf.data ./prog

# Step 2: generate script output
perf script -i perf.data > out.perf

# Step 3: collapse stacks
stackcollapse-perf.pl out.perf > out.folded

# Step 4: generate SVG
flamegraph.pl out.folded > flamegraph.svg

# Step 5: view
xdg-open flamegraph.svg     # Linux
open flamegraph.svg          # macOS
```

One-liner:

```bash
perf record -F 999 -g ./prog && perf script | stackcollapse-perf.pl | flamegraph.pl > fg.svg
```

### 3. Differential flamegraph (before/after)

```bash
# Collect two profiles
perf record -g -o before.data ./prog_old
perf record -g -o after.data ./prog_new

# Collapse
perf script -i before.data | stackcollapse-perf.pl > before.folded
perf script -i after.data  | stackcollapse-perf.pl > after.folded

# Diff (red = regressed, blue = improved)
difffolded.pl before.folded after.folded | flamegraph.pl > diff.svg
```

### 4. Callgrind → flamegraph

```bash
valgrind --tool=callgrind --callgrind-out-file=cg.out ./prog
stackcollapse-callgrind.pl cg.out | flamegraph.pl > fg.svg
```

### 5. Other profiler inputs

```bash
# Go pprof
go tool pprof -raw -output=prof.txt prog
stackcollapse-go.pl prof.txt | flamegraph.pl > fg.svg

# DTrace
dtrace -x ustackframes=100 -n 'profile-99 /execname=="prog"/ { @[ustack()] = count(); }' \
  -o out.stacks sleep 10
stackcollapse.pl out.stacks | flamegraph.pl > fg.svg

# Java (async-profiler)
async-profiler -d 30 -f out.collapsed PID
flamegraph.pl out.collapsed > fg.svg
```

### 6. Reading flamegraphs

A flamegraph is a call-stack visualisation:

- **X axis**: time on CPU (not time sequence) — wider = more time
- **Y axis**: call stack depth — taller = deeper call chain
- **Color**: random (no significance) — unless using differential mode

**What to look for:**

| Pattern | Meaning | Action |
|---------|---------|--------|
| Wide frame near bottom | Function itself is hot | Optimise that function |
| Wide frame with tall narrow towers | Calling many different callees | Hot dispatch; reduce call overhead |
| Very tall stack with wide base | Deep recursion | Check recursion depth; consider iterative approach |
| Plateau at the top | Leaf function with no callees | This leaf is the actual hotspot |
| Many narrow identical stacks | Many threads doing the same work | Consider parallelism or batching |

**Identifying the actionable hotspot:**

1. Find the widest top frame (a frame with no or narrow children above it)
2. That is where CPU time is actually spent
3. Trace down to understand what called it and why

**Differential flamegraph:**

- Red frames: more time in new profile (regression)
- Blue frames: less time in new profile (improvement)
- Frames only in one profile appear solid colored

### 7. flamegraph.pl options

```bash
flamegraph.pl --title "My App" \
              --subtitle "Release build, workload X" \
              --width 1600 \
              --height 16 \
              --minwidth 0.5 \
              --colors java \
              out.folded > fg.svg
```

| Option | Effect |
|--------|--------|
| `--title` | SVG title |
| `--width` | Width in pixels |
| `--height` | Frame height in pixels |
| `--minwidth` | Omit frames < N% (reduces clutter) |
| `--colors` | Palette: `hot` (default), `mem`, `io`, `java`, `js`, `perl`, `red`, `green`, `blue` |
| `--inverted` | Icicle chart (roots at top) |
| `--reverse` | Reverse stacks |
| `--cp` | Consistent palette (same frame = same color across SVGs) |

## References

For tool installation, stackcollapse scripts, and palette options, see [references/tools.md](references/tools.md).

## Related skills

- Use `skills/profilers/linux-perf` to collect perf data
- Use `skills/profilers/valgrind` to collect Callgrind data
- Use `skills/compilers/clang` for LLVM PGO from sampling profiles

© mohitmishra786 · MIT · mohitmishra786/low-level-dev-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой