performance-testing
/performance-testing
Benchmark code so the numbers mean something: warm up, fix inputs, report variance, and gate regressions in CI. Use when measuring the speed of a function or comparing two implementations.
- Author
- Amey-Thakur ↗
- Repository
- AI-SKILLS ↗
- Licence
- MIT
- Last repository change
- 05.09.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 05.09.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Benchmark code so the numbers mean something: warm up, fix inputs, report variance, and gate regressions in CI. Use when measuring the speed of a function or comparing two implementations.
Original author description
Benchmark code so the numbers mean something: warm up, fix inputs, report variance, and gate regressions in CI. Use when measuring the speed of a function or comparing two implementations.
How it works
- Method
- Signals
- Boundaries
SKILL.md preview
--- name: performance-testing description: "Benchmark code so the numbers mean something: warm up, fix inputs, report variance, and gate regressions in CI. Use when measuring the speed of a function or comparing two implementations." --- # Performance testing A benchmark that reports one number from one run is worse than no benchmark: it invites decisions made from noise. Honest measurement accounts for warmup, background variance, and input shape, and it states its uncertainty. Skip the method and you end up optimizing against your cache state and a neighbor's cron job rather than the code. ## Method 1. **Warm up before you measure.** The first iterations pay for JIT compilation, cold caches, and lazy allocation. Run a discard loop until timings stabilize, then start recording. Established harnesses like JMH, pytest-benchmark, and Criterion do this for you; respect it. 2. **Fix the input and the input size.** Benchmark a known, committed dataset at a stated size, not whatever happened to be in memory. Report the size with the result: "parse, 10k rows" means something, "parse is fast" does not. 3. **Run many iterations and report the distribution.** Collect hundreds of samples and report median plus a spread such as p95 and standard deviation. The mean alone hides a bimodal result where half the runs hit a slow path. 4. **Quiet the machine.** Close other load, pin to a core, and disable frequency scaling or turbo boost where you can. On a laptop on battery the numbers are fiction. `hyperfine` and `taskset` help isolate a run. 5. **Compare against a committed baseline, not a memory.** Store last known timings in the repo and diff against them. "20% slower than the baseline we committed" is actionable; "feels slower than last week" is not. 6. **Gate regressions in CI with a threshold and repeats.** Fail the build when the median exceeds the baseline by a set margin, say 10%, confirmed over repeated runs so a single noisy sample does not block a merge. Track the baseline as it legitimately improves. 7. **Profile to find the cost, benchmark to confirm the fix.** A profiler like perf, py-spy, or a flame graph tells you where time goes; the benchmark proves the change actually moved the median, not just your intuition. ## Signals - Do two runs of the unchanged benchmark land within your CI threshold of each other? If not, the harness is too noisy to gate on. - Does the report name the input size, iteration count, and a spread, not just a single millisecond figure? - When the gate fails, can you point to the committed baseline it regressed against? ## Boundaries This covers micro and function-level benchmarks on one machine. Multi-user capacity, ramp profiles, and saturation belong to load-testing. Whether a given speed is fast enough is a product call against a latency budget, not something a benchmark decides.
Versions
| Repository | Score | Licence |
|---|---|---|
| This page · Amey-Thakur/AI-SKILLS | 90 | MIT |
| proffesor-for-testing/agentic-qe | 100 | MIT |
| DaveSkender/Stock.Indicators | 100 | Apache-2.0 |
| foryourhealth111-pixel/Vibe-Skills | 100 | Apache-2.0 |
| petrkindlmann/qa-skills | 100 | MIT |
| nimadorostkar/Claude-Skills-collection | 100 | MIT |
| MARUCIE/openclaw-foundry | 100 | MIT |
| jacob-balslev/skill-graph | 100 | Apache-2.0 |
| kid-sid/codex-spellbook | 100 | MIT |
Database snapshot: 13.11.2026 · package version a5a9f80a1600 (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100testing-quality
Use when selecting, writing, debugging, or reviewing tests and quality gates for application changes or regressions. - 100np-engineering-performance-baseline
Establish a reproducible application performance baseline. Use when a team needs a meaningful baseline before optimization. - 100code-migration
Move code from one implementation to another function by function, tests first and code second, and check two implementations of one app for parity, with jscpd --compare as the progress measure and a coverage map binding each function to its tests. Use when porting a library or… - 100benchmark-suite-creator
Create benchmark suite creator operations. Auto-activating skill for Performance Testing. Triggers on: benchmark suite creator, benchmark suite creator Part of the Performance Testing skill category. Use when working with benchmark suite creator functionality. Trigger with… - 100benchmark-checklist
Check performance measurements before you report or use them. Use for benchmarks, measured speedups, regressions, or performance-based choices.