← ClaudeAtlas

dotnet-benchmarklisted

Run the Game.Benchmarks harness (--compare/--update-baseline) from the project root without `cd`, logging output to a single file and checking exit code + a targeted grep instead of reading the full (very verbose) BenchmarkDotNet log.
KonH/GlobalStrategy · ★ 2 · Testing & QA · score 68
Install: claude install-skill KonH/GlobalStrategy
# dotnet benchmark Runs `dotnet run --project src/Game.Benchmarks -c Release --` against the BenchmarkDotNet perf harness (`Docs/Specs/26_07_18_18_benchmarkdotnet-perf-harness/`), avoiding the same habits `dotnet-build`/`dotnet-test` avoid, plus one more specific to this harness: 1. **Never prefix the command with `cd`.** The Bash tool's working directory is already the project root for every call — a leading `cd` is redundant and (per this project's shell rule) triggers an extra permission prompt for no benefit. 2. **Log to one file, don't re-run to see more.** Redirect stdout+stderr to a single log file. 3. **Don't `Read` the whole log.** BenchmarkDotNet's own console output is extremely verbose (per-iteration pilot/warmup/actual lines, one block per benchmark method) — reading it in full wastes context for no benefit. Check the **exit code** first (it is the verdict — see `Docs/Benchmarks/README` conventions), then use a single targeted Bash `grep`/`tail` to pull just the parts that matter: the `| Method | Mean | ... |` summary table(s), and anything after `Regression(s) detected:` / `Benchmark(s) produced no results` / `No benchmarks matched.` on stderr. ## Args `/dotnet-benchmark (--compare|--update-baseline) [--benchmark <name>] [--epsilon <value>]` - Exactly one of `--compare`/`--update-baseline` is required (mirrors the harness's own CLI contract — see `src/Game.Benchmarks/Program.cs`). - **--benchmark** (optional): case-insensitive s