Um único arquivo SKILL.md com dicas de otimização de desempenho para .NET 10–11, voltadas a agentes de programação com IA e, principalmente, a cargas de benchmark.
dotnet/BenchmarkDotNet
Uma biblioteca .NET para transformar métodos C# em benchmarks reproduzíveis, com aquecimento automático, estatísticas e relatórios de resultados.
- Estrelas
- 11,526
- Forks
- 1,080
- Issues abertas
- 168
- Último commit
- há 22 horas
O que é?
O BenchmarkDotNet permite transformar métodos comuns em benchmarks usando atributos, de forma parecida com a escrita de testes unitários. A biblioteca cuida de etapas que são fáceis de executar incorretamente manualmente, como execuções piloto, aquecimento e iterações de medição, proteção contra eliminação de código morto e verificações do ambiente que alertam sobre a presença de um depurador, builds DEBUG ou hosts virtualizados.
É possível parametrizar um benchmark com [Params], compará-lo com uma linha de base e executá-lo em vários runtimes, como .NET Framework, .NET Core, .NET 5+, Mono e NativeAOT. Os resultados são exibidos em uma tabela-resumo com estatísticas como Mean, Error e StdDev, e podem ser exportados para Markdown, HTML, CSV, XML, JSON e gráficos. A biblioteca também oferece diagnósticos de memória e listagens de desassembly.
O BenchmarkDotNet funciona no Windows, Linux e macOS e oferece suporte a C#, F# e Visual Basic, além das arquiteturas x86, x64, ARM, ARM64, Wasm e LoongArch64.
Recursos principais
- 01Transforma métodos em benchmarks com atributos como [Benchmark] e [Params].
- 02Cuida automaticamente das execuções piloto, do aquecimento e da quantidade de iterações com base em estatísticas.
- 03Permite comparar benchmarks com uma linha de base e executá-los em vários runtimes .NET.
- 04Exporta resultados para Markdown, HTML, CSV, JSON e gráficos.
- 05Mede alocações de memória gerenciada e nativa e exibe listagens de desassembly.
Casos de uso
- Medir se uma alteração de código em um trecho crítico de um serviço .NET realmente melhora o desempenho.
- Comparar algoritmos ou APIs de bibliotecas alternativas, como funções de hash, em diferentes runtimes.
- Verificar regressões de desempenho entre versões do .NET ou em builds NativeAOT.
- Compartilhar experimentos de desempenho reproduzíveis com a equipe em um formato padronizado de relatório.
Início rápido
- 1
Crie um aplicativo de console .NET e adicione o pacote NuGet BenchmarkDotNet
- 2
Marque os métodos de uma classe com [Benchmark] e execute os benchmarks a partir do ponto de entrada do aplicativo de console
Antes de usar
- Os benchmarks devem ser executados a partir de um aplicativo de console; outros tipos de aplicativo não são compatíveis.
- BenchmarkDotNet não substitui o conhecimento sobre como criar bons benchmarks, e os resultados ainda precisam ser interpretados com cuidado.
Tópicos
Perguntas frequentes
- O que é BenchmarkDotNet?
- Uma biblioteca .NET para transformar métodos C# em benchmarks reproduzíveis, com aquecimento automático, estatísticas e relatórios de resultados. O BenchmarkDotNet permite transformar métodos comuns em benchmarks usando atributos, de forma parecida com a escrita de testes unitários. A biblioteca cuida de etapas que são fáceis de executar incorretamente manualmente, como execuções piloto, aquecimento e iterações de medição, proteção contra eliminação de código morto e verificações do ambiente que alertam sobre a presença de um depurador, builds DEBUG ou hosts virtualizados.
- BenchmarkDotNet é gratuito? Qual é a licença?
- BenchmarkDotNet é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- BenchmarkDotNet ainda é mantido?
- Manutenção ativa. O último commit de BenchmarkDotNet foi em 6 de nov. de 2026.
- Para que posso usar BenchmarkDotNet?
- Medir se uma alteração de código em um trecho crítico de um serviço .NET realmente melhora o desempenho. Comparar algoritmos ou APIs de bibliotecas alternativas, como funções de hash, em diferentes runtimes. Verificar regressões de desempenho entre versões do .NET ou em builds NativeAOT. Compartilhar experimentos de desempenho reproduzíveis com a equipe em um formato padronizado de relatório.
- Como instalar BenchmarkDotNet?
- Crie um aplicativo de console .NET e adicione o pacote NuGet BenchmarkDotNet Marque os métodos de uma classe com [Benchmark] e execute os benchmarks a partir do ponto de entrada do aplicativo de console
- Onde consigo BenchmarkDotNet?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/dotnet/BenchmarkDotNet
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Profiler linha a linha para Python que mostra quanto tempo cada linha do código-fonte de uma função decorada leva para executar.
Plugin do pytest que oferece uma fixture de benchmark para medir o tempo de funções Python em suítes de testes do pytest.
Profiler em Rust que mede gargalos de CPU, memória, async, SQL, HTTP e I/O, com exportação para Prometheus e Grafana.
Uma ferramenta de benchmarking em Python que acompanha o desempenho de pacotes entre commits e publica os resultados em um relatório web estático.
Ferramenta gratuita para Windows que ajuda a identificar problemas de desempenho de CPU e memória, com recursos especiais para analisar código do runtime .NET.