What problem does it solve? Writing correct BenchmarkDotNet benchmarks is error-prone: outdated assumptions about job configuration, runtime comparison, and execution defaults silently produce misleading measurements. This Skill provides verified, current guidance for designing, configuring, and running BDN benchmarks so .NET performance questions get answered with trustworthy data. ## Core Features & Use Cases - Benchmark Authoring: Guides correct benchmark code — returning results to prevent dead code elimination, moving initialization to [GlobalSetup], avoiding manual loops, and marking baselines for comparisons. - Comparison Strategies: Supports side-by-side method comparison, runtime comparison (net8.0 vs net9.0), NuGet package version comparison, saved-DLL baselines, GC/JIT configuration comparison, and input-scale analysis. - Cost-Aware Execution: Matches job presets (Dry, Short, Default, Medium, Long) to the situation, uses --filter to run subsets incrementally, and redirects verbose output to log files. - Diagnostics & Export: Covers MemoryDiagnoser, DisassemblyDiagnoser, EventPipeProfiler, hardware counters, statistical columns, and JSON/CSV/Markdown exporters. - Use Case: A developer reviewing a PR wants to know if a parsing change regressed performance. The Skill helps create a standalone benchmark project, compare the saved baseline DLL against current source side-by-side, and read the ratio columns from the Markdown report. ## Quick Start Ask the agent to write and run a BenchmarkDotNet benchmark comparing two implementations of a method in your .NET project, starting with a Dry job validation run.