Repolode
dotnet

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. 1

    Crie um aplicativo de console .NET e adicione o pacote NuGet BenchmarkDotNet

  2. 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