ExpertiDict

C# · Avançado · Inglês · Técnico

BenchmarkDotNet

/ˈbɛntʃmɑrk dɑt nɛt/substantivo

Biblioteca de microbenchmarks para .NET que cuida de aquecimento, repetições e estatísticas. Com o atributo [Benchmark] compara implementações e mede tempo e alocações com [MemoryDiagnoser].

Onde usar

Aparece quando alguém afirma que uma versão é mais rápida: em vez de medir com Stopwatch, rode o benchmark em Release com BenchmarkRunner.Run. Ele mostra média, desvio e bytes alocados por operação.

Em código

using BenchmarkDotNet.Attributes;

[MemoryDiagnoser]
public class Soma
{
  int[] v = [.. Enumerable.Range(0, 99)];
  [Benchmark] public int Linq() => v.Sum();
}

Exemplos

Don't guess, measure it with BenchmarkDotNet.

Não adivinhe, meça com o BenchmarkDotNet.

Run the benchmark in Release mode.

Rode o benchmark em modo Release.

Cuidado

Não rode em Debug: o BenchmarkDotNet avisa que o resultado é inválido.

Veja também

Todos os termos de C#