From odin
Provides a language-neutral workflow for performance analysis: flamegraph interpretation, allocation tracking, latency profiling, and regression measurement. Activates when latency, throughput, or memory budgets are missed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/odin:perf-profileThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Performance is a contract with reality. Intuition about hot paths is wrong more often than right. Capture, locate, hypothesize, optimize, re-measure, prove the regression with a benchmark — then defend the win with an invariant.
Performance is a contract with reality. Intuition about hot paths is wrong more often than right. Capture, locate, hypothesize, optimize, re-measure, prove the regression with a benchmark — then defend the win with an invariant.
Apply: latency or throughput SLO violation; memory pressure (RSS growth, GC churn); benchmark regression; pre-optimization scoping; cold-start vs steady-state cost split; cache locality / branch-prediction concerns.
NOT apply: defect with wrong outputs; architectural redesign; micro-optimization without budget pressure; untested code (write tests first).
hyperfine --warmup 3 --min-runs 10.hyperfine plus profiler. Save raw artifacts.hyperfine 'baseline' 'optimized' --warmup 3 --min-runs 10.-fno-omit-frame-pointer / RUSTFLAGS=-C force-frame-pointers=yes.hotspot --diff): red = added cost, blue = removed.| Family | CPU sampling | Memory / alloc | Differential / benchmark |
|---|---|---|---|
| Systems (C/C++/Rust) | perf record + flamegraph, samply, valgrind --tool=callgrind | valgrind --tool=massif, heaptrack, dhat | hyperfine, criterion, iai-callgrind |
| Python | py-spy record, scalene, cProfile + snakeviz | scalene (memory mode), tracemalloc, memray | pytest-benchmark, hyperfine |
| Go | go tool pprof (cpu profile), runtime/pprof | go tool pprof (heap), runtime.MemStats | go test -bench -benchmem, benchstat |
| Java/Kotlin | async-profiler, JFR (jcmd JFR.start) | JFR allocation events, Eclipse MAT on heap dump | JMH, hyperfine |
| JavaScript/TypeScript | Chrome DevTools, node --prof, clinic flame | Chrome heap snapshot, clinic doctor | tinybench, mitata, hyperfine |
| OCaml | landmarks, magic-trace | memtrace + memtrace-viewer, Statmemprof | bechamel, core_bench, hyperfine |
Use procs (not ps). Use bat -P -p -n (not cat). Use difft (not diff). Use hyperfine (not time).
hyperfine --warmup --min-runs.npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinCPU/memory profiling, identifying bottlenecks, flame graphs, hotspot analysis.
Multi-phase performance investigation workflow for establishing baselines, profiling, and making evidence-gated optimization decisions. Use when debugging latency, throughput regressions, or the question "why is this slow?"