From odin
Guides hotspot detection and root-cause analysis via flamegraph interpretation, allocation tracking, latency profiling, and benchmark regressions. Use for latency/throughput/memory budget misses or pre-optimization.
npx claudepluginhub outlinedriven/odin-claude-plugin --plugin odinThis skill uses the workspace's default tool permissions.
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.
Profiles CPU/memory hotspots with perf/JFR, generates flame graphs, reports file:line evidence for performance investigations.
Profiles application performance, identifies bottlenecks, and optimizes hot paths using CPU profiling, flame graphs, and benchmarking. Use when investigating performance issues or optimizing critical code paths.
Share bugs, ideas, or general feedback.
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.