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.