Один файл SKILL.md с советами по оптимизации производительности .NET 10–11 для AI-агентов, в первую очередь для бенчмарков.
dotnet/BenchmarkDotNet
Библиотека .NET для превращения методов C# в воспроизводимые бенчмарки с автоматическим прогревом, статистикой и отчетами о результатах.
- Звёзды
- 11,526
- Форки
- 1,080
- Открытые issues
- 168
- Последний коммит
- 11 часов назад
Что это?
BenchmarkDotNet позволяет превращать обычные методы в бенчмарки с помощью атрибутов — так же, как при написании unit-тестов. Библиотека берет на себя задачи, которые легко выполнить неправильно вручную: пробные запуски, прогрев и измерительные итерации, защиту от устранения мертвого кода, а также проверку окружения с предупреждениями о подключенном отладчике, сборке DEBUG или виртуализированном хосте.
Бенчмаркам можно задавать параметры с помощью [Params], сравнивать их с базовым вариантом и запускать в разных средах выполнения, например .NET Framework, .NET Core, .NET 5+, Mono и NativeAOT. Результаты выводятся в виде сводной таблицы со статистикой, например Mean, Error и StdDev, и экспортируются в Markdown, HTML, CSV, XML, JSON и графики. Также поддерживаются диагностика памяти и листинги дизассемблированного кода.
BenchmarkDotNet работает в Windows, Linux и macOS, поддерживает C#, F# и Visual Basic. Среди поддерживаемых архитектур указаны x86, x64, ARM, ARM64, Wasm и LoongArch64.
Ключевые возможности
- 01Превращайте методы в бенчмарки с помощью атрибутов, например [Benchmark] и [Params].
- 02Автоматически выполняет пробные запуски и прогрев, а также определяет количество итераций на основе статистики.
- 03Сравнивайте бенчмарки с базовым вариантом и запускайте их в разных средах выполнения .NET.
- 04Экспортируйте результаты в Markdown, HTML, CSV, JSON и графики.
- 05Измеряйте выделение управляемой и нативной памяти и просматривайте листинги дизассемблированного кода.
Сценарии использования
- Проверить, действительно ли изменение кода на горячем пути .NET-сервиса повышает производительность.
- Сравнить альтернативные алгоритмы или API библиотек, например функции хеширования, в разных средах выполнения.
- Проверить регрессии производительности между версиями .NET или в сборках NativeAOT.
- Делиться с коллегами воспроизводимыми экспериментами производительности в стандартном формате отчета.
Быстрый старт
- 1
Создайте консольное приложение .NET и добавьте пакет NuGet BenchmarkDotNet
- 2
Пометьте методы в классе атрибутом [Benchmark] и запустите бенчмарки из точки входа консольного приложения
Что важно знать
- Бенчмарки необходимо запускать из консольного приложения; другие типы приложений не поддерживаются.
- BenchmarkDotNet не заменяет знания о грамотном проектировании бенчмарков, а результаты по-прежнему нужно тщательно интерпретировать.
Темы
Частые вопросы
- Что такое BenchmarkDotNet?
- Библиотека .NET для превращения методов C# в воспроизводимые бенчмарки с автоматическим прогревом, статистикой и отчетами о результатах. BenchmarkDotNet позволяет превращать обычные методы в бенчмарки с помощью атрибутов — так же, как при написании unit-тестов. Библиотека берет на себя задачи, которые легко выполнить неправильно вручную: пробные запуски, прогрев и измерительные итерации, защиту от устранения мертвого кода, а также проверку окружения с предупреждениями о подключенном отладчике, сборке DEBUG или виртуализированном хосте.
- BenchmarkDotNet можно использовать бесплатно? Какая у него лицензия?
- BenchmarkDotNet распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- BenchmarkDotNet всё ещё поддерживается?
- Активно поддерживается. Последний коммит в BenchmarkDotNet — 6 нояб. 2026 г..
- Для чего можно использовать BenchmarkDotNet?
- Проверить, действительно ли изменение кода на горячем пути .NET-сервиса повышает производительность. Сравнить альтернативные алгоритмы или API библиотек, например функции хеширования, в разных средах выполнения. Проверить регрессии производительности между версиями .NET или в сборках NativeAOT. Делиться с коллегами воспроизводимыми экспериментами производительности в стандартном формате отчета.
- Как установить BenchmarkDotNet?
- Создайте консольное приложение .NET и добавьте пакет NuGet BenchmarkDotNet Пометьте методы в классе атрибутом [Benchmark] и запустите бенчмарки из точки входа консольного приложения
- Где скачать BenchmarkDotNet?
- Исходный код и инструкции по установке — на GitHub: https://github.com/dotnet/BenchmarkDotNet
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Построчный профилировщик Python, который показывает, сколько времени занимает выполнение каждой строки декорированной функции.
Плагин для pytest с фикстурой benchmark, которая измеряет время выполнения Python-функций в тестах.
Профилировщик Rust для поиска узких мест CPU, памяти, async-кода, SQL, HTTP и I/O с экспортом в Prometheus и Grafana.
Инструмент для бенчмаркинга на Python, который отслеживает производительность пакета между коммитами и публикует результаты в виде статического веб-отчёта.
Бесплатный инструмент для Windows, который помогает выявлять проблемы с производительностью CPU и памяти, особенно в коде, работающем на .NET runtime.