build-perf-diagnostics

Diagnose MSBuild build performance bottlenecks using binary log analysis.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Slow .NET builds are hard to debug without visibility into where time is spent. This Skill analyzes MSBuild binary logs to pinpoint the exact targets, tasks, and processes consuming build time, turning vague "builds are slow" complaints into actionable findings. ## Core Features & Use Cases - Binlog Performance Analysis: Generate and replay binary logs with performance summaries to identify expensive targets and tasks, using the binlog MCP server or text-log replay as a fallback. - Seven Bottleneck Categories: Detects RAR slowness (>5s), Roslyn analyzer overhead (>30% of Csc time), serialization bottlenecks, excessive Copy tasks, evaluation overhead, redundant NuGet restores, and poor project graph shape. - Impact-Prioritized Reporting: Categorizes findings as high impact (>10% of build time), medium impact (2-10%), or quick wins (property flag changes). - Use Case: A team's solution build takes 8 minutes. Use this Skill to replay the binlog, discover that ResolveAssemblyReference takes 20s per project due to excessive transitive references, and apply targeted MSBuild property fixes. ## Quick Start Analyze my build.binlog file and tell me which targets and tasks are making my .NET build slow.

Frequently Asked Questions about build-perf-diagnostics

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

FAQPage Schema
How do I find out why my MSBuild or dotnet build is slow?

Generate a binary log with dotnet build /bl -m, then replay it with dotnet msbuild build.binlog -flp:v=diag;performancesummary. The Target and Task Performance Summary sections at the end of the log list all targets and tasks sorted by cumulative time.

How to analyze a binlog file for build performance?

Replay the binlog to a diagnostic text log with the performancesummary flag, then grep for Target Performance Summary and Task Performance Summary sections. Alternatively, use the binlog MCP server tools for overview, search, and property queries.

Why is ResolveAssemblyReference (RAR) taking so long in my build?

RAR slowness above 5 seconds usually comes from too many assembly references, network-based reference paths, or large search paths. Reduce transitive references with DisableTransitiveProjectReferences, trim unused PackageReferences, and set ReferenceOutputAssembly=false on build-only project references.

Can I disable Roslyn analyzers to speed up local builds?

Yes, disable analyzers conditionally with RunAnalyzers set to false when ContinuousIntegrationBuild is not true, keeping enforcement in CI. Analyzers consuming more than 30% of Csc task time indicate a real overhead problem worth addressing.

When should I not use build performance diagnostics?

Do not use it to establish initial baselines (use build-perf-baseline first), fix incremental build issues (use incremental-build), or tune parallelism (use build-parallelism). It also does not apply to non-MSBuild build systems.