# build-perf-diagnostics

Скилл разбирает binlog и Performance Summary, чтобы найти, почему сборка .NET идёт медленно. Нужен, когда причина тормозов непонятна.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3500 установок · ★ 5730
- Автор: dotnet
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/dotnet/skills/tree/HEAD/plugins/dotnet-msbuild/skills/build-perf-diagnostics/SKILL.md
- Обновлён: 2026-10-24
- HTML: https://affpapa.org/nevibecode/skills/build-perf-diagnostics

## Что делает

Скилл работает по замерам, которые уже сняты: сначала генерируется binlog командой `dotnet build /bl:{} -m`, потом он разбирается через binlog MCP-сервер `Microsoft.AITools.BinlogMcp` из пространства имён `binlog`. Если сервер не подключается, есть запасной путь — переиграть binlog в текстовый лог с `performancesummary` и читать сводку по целям и задачам через `grep`.

Дальше скилл сверяет цифры с порогами: RAR дольше 5 секунд, анализаторы больше 30% времени задачи Csc, одна цель больше половины сборки, загрузка узлов ниже 80%. Под каждую находку в нём расписаны причины и правки — условное отключение анализаторов через `RunAnalyzers`, `DisableTransitiveProjectReferences` для лишних транзитивных ссылок, хардлинки и `SkipCopyUnchangedFiles` для тяжёлых Copy. Отдельно разобраны накладные расходы на вычисление свойств и restore внутри сборки.

Важно: скилл не для первичных замеров и не для параллелизма — для этого есть соседние скиллы. И он про MSBuild, другие системы сборки он не трогает.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dotnet/skills --skill build-perf-diagnostics -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/build-perf-diagnostics/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/build-perf-diagnostics/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dotnet/skills --skill build-perf-diagnostics -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/build-perf-diagnostics/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dotnet/skills --skill build-perf-diagnostics -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/build-perf-diagnostics/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dotnet/skills build-perf-diagnostics
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/build-perf-diagnostics/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add dotnet/skills --skill build-perf-diagnostics -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/dotnet/skills --path plugins/dotnet-msbuild/skills/build-perf-diagnostics
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/build-perf-diagnostics/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add dotnet/skills --skill build-perf-diagnostics -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/dotnet/skills/tree/HEAD/plugins/dotnet-msbuild/skills/build-perf-diagnostics/SKILL.md

## Когда брать
- понять, почему сборка .NET стала медленной без явной причины
- найти задачу, которая съедает больше половины времени сборки
- отделить время анализаторов Roslyn от времени компиляции
- проверить загрузку узлов сборки и найти сериализацию
- разобрать тяжёлые Copy и лишние транзитивные ссылки

## Примеры запросов агенту
- Собери проект с binlog и разбери, что тормозит: `dotnet build /bl:{} -m`
- Посмотри Task Performance Summary и скажи, не занимают ли анализаторы больше 30% Csc
- Почему RAR идёт дольше 5 секунд на этом проекте?

## Похожие
- [kotlin-tooling-native-build-performance](https://affpapa.org/nevibecode/skills/kotlin-tooling-native-build-performance.md) — скилл · 943 установки
- [container-publish](https://affpapa.org/nevibecode/skills/container-publish.md) — скилл · 2800 установок
- [dotnet-project-structure](https://affpapa.org/nevibecode/skills/dotnet-project-structure.md) — скилл · 658 установок
- [project-structure](https://affpapa.org/nevibecode/skills/project-structure.md) — скилл · 2800 установок
- [cargo-diagnostics](https://affpapa.org/nevibecode/skills/cargo-diagnostics.md) — скилл · 8700 установок
- [cmux-diagnostics](https://affpapa.org/nevibecode/skills/cmux-diagnostics.md) — скилл · 6400 установок

Из того же набора: [dotnet/skills](https://affpapa.org/nevibecode/by/dotnet/skills.md) — 101 карточка

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
