build-perf-baseline

Establishes MSBuild performance baselines and applies systematic .NET build optimization techniques.

1|Updated Jun 1, 2026
One-click install
npx skills add https://github.com/D1ssolve/craft-agents --skill build-perf-baseline-d1ssolve
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: build-perf-baseline
Source: https://github.com/D1ssolve/craft-agents/tree/main/skills/build-perf-baseline
Command: npx skills add https://github.com/D1ssolve/craft-agents --skill build-perf-baseline-d1ssolve

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Slow .NET builds waste developer time, but optimizing without measurements is guesswork. This Skill provides a structured method to measure cold, warm, and no-op build times, then apply proven MSBuild optimizations based on the results. ## Core Features & Use Cases - Baseline Measurement: Capture cold, warm, and no-op build timings with binary logs to identify whether incremental build, restore, or compilation is the bottleneck. - Optimization Techniques: Apply MSBuild Server, artifacts output layout, deterministic builds, dependency graph trimming, static graph builds, and parallel build tuning. - Decision Tree Guidance: Follow a diagnostic flowchart that routes slow-build symptoms to the right follow-up skill (incremental-build, build-perf-diagnostics, build-parallelism). - Use Case: Your solution's no-op build takes 45 seconds. Use this Skill to record the baseline, discover incremental build is broken, then apply the incremental-build skill and re-measure to confirm the improvement. ## Quick Start Measure the cold, warm, and no-op build times of my .NET solution and recommend which MSBuild optimizations to apply first.

Frequently Asked Questions about build-perf-baseline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I measure .NET build performance?▼

Measure three scenarios: a cold build after deleting bin/obj folders, a warm build after touching one source file, and a no-op build with no changes. Use dotnet build with the /bl flag to capture binary logs for each scenario.

How to speed up slow dotnet build times?▼

Start by baselining cold, warm, and no-op builds, then apply targeted fixes: enable MSBuild Server, use UseArtifactsOutput, trim redundant ProjectReferences, try static graph builds with /graph, and tune parallelism with -m. Separate restore from build in CI pipelines.

What is a good no-op build time for .NET projects?▼

A no-op build should finish in under 5 seconds for small repos and under 30 seconds for large repos, with all compilation targets reporting up-to-date. If it exceeds 30 seconds, incremental build is broken and needs Inputs/Outputs fixes.

When should I use dotnet build /graph static graph builds?▼

Use /graph for large solutions with 20 or more projects and in CI, where upfront graph evaluation improves scheduling and parallelism. Avoid it for small solutions under 5 projects, where graph evaluation overhead outweighs the benefits.

Why does my warm build recompile everything?▼

Full recompilation on warm builds usually means the project dependency chain forces cascading rebuilds. Remove redundant transitive ProjectReferences, use ReferenceOutputAssembly="false" for build-order-only dependencies, and check incremental build Inputs/Outputs configuration.