build-perf-diagnostics

Diagnose MSBuild performance bottlenecks by analyzing binary logs and performance summaries.

Updated Jul 20, 2026
One-click install
npx skills add https://github.com/Netcodr81/kinetic-reports --skill build-perf-diagnostics-netcodr81
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: build-perf-diagnostics
Source: https://github.com/Netcodr81/kinetic-reports/tree/main/.github/skills/build-perf-diagnostics
Command: npx skills add https://github.com/Netcodr81/kinetic-reports --skill build-perf-diagnostics-netcodr81

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Slow .NET builds are hard to diagnose without structured analysis. This Skill identifies why MSBuild builds are slow by analyzing binary logs (binlogs) and performance summaries, pinpointing bottlenecks like slow ResolveAssemblyReference, expensive Roslyn analyzers, serialization issues, and excessive file I/O. ## Core Features & Use Cases - Binlog Performance Analysis: Generate and replay binary logs with performance summaries to find expensive targets and tasks sorted by cumulative time. - Seven Bottleneck Categories: Detects RAR slowness (>5s), analyzer overhead (>30% of Csc time), single-target domination (>50% of build), low node utilization (<80%), excessive Copy tasks, evaluation overhead, and NuGet restore running every build. - Actionable Fixes with Thresholds: Provides concrete MSBuild property fixes (e.g., conditional RunAnalyzers, hardlinks, static graph restore) and an impact categorization system (high/medium/quick wins). - Use Case: Your solution build takes 8 minutes. Use this Skill to replay the binlog, discover that analyzers consume 45% of Csc time and RAR takes 12s per project, then apply conditional analyzer settings and reduce transitive references to cut build time significantly. ## Quick Start Analyze my build.binlog file and tell me which targets and tasks are consuming the most build time and how to fix the top bottlenecks.

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 list all targets and tasks sorted by cumulative time, revealing the top bottlenecks.

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. Check node utilization messages, analyzer execution times, and per-project build durations to identify bottlenecks.

Why is ResolveAssemblyReference slow in my build?▼

RAR slowness typically comes from too many assembly references, network-based reference paths, or large search paths. RAR over 5s per project is concerning; reduce transitive references with DisableTransitiveProjectReferences and trim unused PackageReferences.

How do I reduce Roslyn analyzer impact on build time?▼

Analyzers should consume less than 30% of Csc task time. Disable them conditionally in the dev inner loop using RunAnalyzers set to false when ContinuousIntegrationBuild is not true, while preserving full analyzer enforcement in CI builds.

When should I not use build performance diagnostics?▼

Do not use this approach for establishing initial baselines (use build-perf-baseline first), fixing incremental build issues, or parallelism tuning. It also does not apply to non-MSBuild build systems.