using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

Por fim, para compilar a aplicação e executar os benchmarks, execute o seguinte comando no console.


dotnet run -p SplitStringsPerformanceBenchmarkDemo.csproj -c Release

A Figura 2 mostra os resultados dos benchmarks executados.

Figura 2. Comparando o ReadOnlySpanMétodos .Split() e String.Split() usando BenchmarkDotNet.

IDG

Como você pode ver nos resultados de benchmarking na Figura 2, o ReadOnlySpanO método .Split() tem um desempenho significativamente melhor em comparação com o método String.Split(). Os dados de desempenho que você vê aqui são apenas para uma execução de cada um dos métodos. Se você executar os métodos de benchmark várias vezes (digamos, em um loop), poderá ver diferenças de desempenho ainda maiores.

O ReadOnlySpanO método .Split() é uma alternativa mais rápida e livre de alocação ao método String.Split() em C#. Os métodos baseados em Span em C# são muito mais eficientes, exigindo quase nenhuma coleta de lixo da Geração 0 ou Geração 1 em comparação com os métodos da classe String. Eles reduzem consideravelmente o consumo de memória e as despesas gerais de coleta de lixo.