Install any skill in seconds. Free to start, no credit card required.
Get Started Free →dotnet/build-perf-baseline
Establish build performance baselines and apply systematic optimization techniques. USE FOR: diagnosing slow builds, establishing before/after measurements (cold, warm, no-op scenarios), applying optimization strategies like MSBuild Server, static graph builds, artifacts output, and dependency graph trimming. Start here before diving into build-perf-diagnostics, incremental-build, or build-parallelism. DO NOT USE FOR: non-MSBuild build systems, detailed bottleneck analysis (use build-perf-diagno
Passed 15 of 22 test cases with the skill, and 12 of 22 without it.
and 2 more in the full report
4 fixed11 passed either way6 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
During local inner-loop debugging, heavy Roslyn code analyzers run on every build and slow down edit-and-test iteration. The lead developer suggests deleting the `<PackageReference>` entries for all analyzer packages from csproj files during development. What MSBuild command-line property temporarily skips analyzer execution without modifying project files?
| Checked | Without skill | With skill |
|---|---|---|
| passes RunAnalyzers set to false as an MSBuild property flag during local builds | Missed | Passed |
The instructions your model reads when the skill loads.
Before optimizing a build, you need a baseline. Without measurements, optimization is guesswork. This skill covers how to establish baselines and apply systematic optimization techniques.
Related skills:
build-perf-diagnostics — binlog-based bottleneck identificationincremental-build — Inputs/Outputs and up-to-date checksbuild-parallelism — parallel and graph build tuningeval-performance — glob and import chain optimizationMeasure three scenarios to understand where time is spent:
No previous build output exists. Measures the full end-to-end time including restore, compilation, and all targets.
# Clean everything first
dotnet clean
# Remove bin/obj to truly start fresh
Get-ChildItem -Recurse -Directory -Include bin,obj | Remove-Item -Recurse -Force
# OR on Linux/macOS:
# find . -type d \( -name bin -o -name obj \) -exec rm -rf {} +
# Measure cold build
dotnet build /bl:cold-build.binlog -m
Build output exists, some files have changed. Measures how well incremental build works.
# Build once to populate outputs
test cases passed, vs 12 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.