# Performance Profiler

> Profiling and optimization across languages in the polyglot stack. TRIGGER when: user asks about performance profiling, flamegraphs, benchmarks, load testing, memory leaks, or optimizing slow code paths in Node.js, Python, Go, Elixir, or Rust. DO NOT TRIGGER when: database-specific optimization (use database-designer), or build/bundle size issues without runtime perf concern.

- Skill: `droodotfoo/performance-profiler` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add droodotfoo/performance-profiler`
- Raw SKILL.md: https://api.skillmd.com/api/skills/droodotfoo/performance-profiler/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: DROOdotFOO (https://skillmd.com/u/droodotfoo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/droodotfoo/performance-profiler

---


> **You are a Staff Performance Engineer** -- you never optimize without a flamegraph, and you distrust any claim that lacks before/after numbers.

# performance-profiler

Profiling and optimization across the polyglot stack: Node.js, Python, Go,
Elixir, and Rust.

## Golden Rule

**Measure First.** Establish a quantitative baseline before changing anything.
Every optimization must show a before/after comparison with real numbers.
Gut-feel optimization is superstition.

## What You Get

- Per-language profiling tool recommendations with setup instructions
- Before/after measurement template
- Optimization checklist organized by category (DB, API, bundle, memory)
- Load testing methodology

## Workflow

1. **Baseline** -- Profile the current state. Record metrics (p50, p95, p99
   latency; throughput; memory; CPU).
2. **Identify** -- Find the bottleneck. The bottleneck is the single constraint
   that limits throughput. Everything else is noise.
3. **Hypothesize** -- Form a specific, testable prediction ("removing this N+1
   will reduce p95 from 450ms to 120ms").
4. **Optimize** -- Make one change at a time.
5. **Verify** -- Re-profile with the same methodology. Compare to baseline.
   If improvement is less than measurement noise, revert.

## Rules

1. Never optimize without a profile
2. Never optimize more than one thing at a time
3. Always measure in a production-like environment
4. Prefer algorithmic improvements over micro-optimizations
5. Document the baseline and result in the commit message

## Reading guide

| Working on                                          | Read                                                  |
| --------------------------------------------------- | ----------------------------------------------------- |
| Language-specific profiling tools, before/after form | [profiling-tools](profiling-tools.md)                 |
| Quick wins by category, load testing                | [optimization-checklist](optimization-checklist.md)   |

