Dica Rápida: BenchmarkDotNet의 테스트 테스트
Dica Rápida는 BenchmarkDotNet에서 다음 코드를 사용할 수 있습니다.
O BenchmarkDotNet é uma biblioteca disponível no NuGet que, uma vez adicionada ao seu projeto, te permite executar testes de desempenho de forma bem semelhante à de testes de unidade.
Vamos fazer um pequeno teste. Para isso, crie um novo projeto do tipo
Console
chamado Lab.Benchmark.Linq
, adicione a biblioteca BenchmarkDotNet e, em seguida, crie um arquivo chamado LinqBenchmark.cs, e adicione o seguinte conteúdo:using BenchmarkDotNet.Attributes;
using System;
using System.Linq;
namespace Lab.Benchmark.Linq
{
public class LinqBenchmark
{
private const int capacity = 1000;
private const int slice = 500;
private int[] numbers = new int[capacity];
[GlobalSetup]
public void Setup()
{
for (int i = 0; i < capacity; i++)
numbers[i] = i;
}
[Benchmark]
public int LinqWhereAndFirst() =>
numbers.Where(x => x > slice).First();
[Benchmark]
public int LinqFirst() =>
numbers.First(x => x > slice);
[Benchmark(Baseline=true)]
public int NoLinq()
{
for (int i = 0; i < numbers.Length; i++)
if (numbers[i] > slice)
return numbers[i];
throw new InvalidOperationException();
}
}
}
Vamos verificar o conteúdo deste arquivo. Repare que temos um atributo chamado
GlobalSetup
sobre o métodoSetup
. Este atributo indica que antes da execução de qualquer 벤치마크 este método será executado.Em seguida, temos métodos marcados com o atributo
Benchmark
, que indica que se trata de um método de medição (da mesma forma que um método de teste no XUnit, por exemplo, teria um atributo Fact
ou Theory
). No último método temos, além do atributo Benchmark
, a propriedade Baseline
com value true
. Isso significa que este será o baseline de nossa medição, ou seja, o ponto de referência para as demais execuções. 선택 사항에 대한 추가 정보는 베이스라인 포드리아에서 실행 방법을 실행하는 데 필요한 숫자를 추가하는 것입니다.따라서 벤치마크를 실행하기 위해 최소로 필요한 항목입니다.
Vamos ao ao arquivo Program.cs, e substituir o o conteúdo original pelo seguinte:
using BenchmarkDotNet.Running;
namespace Lab.Benchmark.Linq
{
static class Program
{
static void Main(string[] args)
{
BenchmarkRunner.Run<LinqBenchmark>();
}
}
}
Aqui temos apenas uma chamada para o método
Run
do executor de 벤치마크, especificando o tipoLinqBenchmark
que criamos acima.Para executar o 벤치마크, 기본 구성 o build do projeto para
Release
, e executar este programa sem habilitar o debugger(Ctrl +F5).Se tudo deu certo, o resultado será semalhante ao da imagem abaixo.
E assim temos um teste de desempenho de três implementações distintas de um mesmo algoritmo.
Para maiores informações sobre a biblioteca, recomendo sua documentação no Github (em inglês).
Até a proxima!
Reference
이 문제에 관하여(Dica Rápida: BenchmarkDotNet의 테스트 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/wsantosdev/dica-rapida-testando-desempenho-com-benchmarkdotnet-c18텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)