Artigos C#

Recurso Benchmark no C# .NET CORE – provando que stringbuilder é 200X mais rápido que concatenação comum/simples

Fala Dev,

O .NET Core é uma plataforma de desenvolvimento de software gratuita e de código aberto que permite criar aplicativos multiplataforma. É uma escolha popular para desenvolvedores que desejam criar aplicativos rápidos, escaláveis e eficientes.

Um dos aspectos mais importantes do desenvolvimento de aplicativos .NET Core é garantir que eles sejam executados com a melhor performance possível. Isso pode ser feito usando uma variedade de técnicas, incluindo benchmarking.

Benchmarking é o processo de medir o desempenho de um aplicativo. Isso pode ser feito usando uma variedade de ferramentas, incluindo bibliotecas de terceiros e ferramentas internas do Visual Studio.

Ao realizar benchmarks em seu aplicativo .NET Core, você pode identificar áreas onde o desempenho pode ser melhorado. Isso pode ser feito otimizando o código, usando uma estrutura diferente ou mudando o ambiente de execução.

Este artigo fornecerá uma introdução ao benchmarking no .NET Core. Ele discutirá os diferentes tipos de benchmarks, as ferramentas que podem ser usadas para realizar benchmarks e como interpretar os resultados dos benchmarks.

Ao concluir a leitura deste artigo, você estará pronto para começar a realizar benchmarks em seu próprio aplicativo .NET Core e identificar áreas onde o desempenho pode ser melhorado.

Para utilizar o recurso, de maneira fácil e rápida, crie um projeto CONSOLE application CORE em seu Visual Studio.

Baixe os seguinte pacote através da janela de NUGETs:

Não esqueça de colocar os USINGs necessários.

Crie a classe / código que gostaria de testar:

No program.cs:

Inclusa os USINGs, usando o BenchmarkRunner.Run, indique a sua classe para ser testada, no meu caso MeuBenchMarks:

Execute o código:

Pronto, o diagnostico irá mostrar onde o programa gasta mais tempo.

Aproveito o exemplo para comprovar que concatenar strings de maneira “simples” ou direta é aproximadamente 200x mais lento que utilizando StringBuilder.

E ai? Sabia dessa?

Lucas Dalcolmo

About Author

Sou desenvolvedor de software a mais de 13 anos com experiência nacioanl e internacional. Já produzi softwares para grandes empresas no Brasil e também bancos em Portugal. Possuo as certificações microsoft AZ-900, DP-900, AI-900 e AZ-204 (azure developer associate). Sou fundador da Dallm Games Studio (@dallmgamesstudio) e fui mentor em vários eventos de desenvolvimento de jogos. Também fui mentor do NASA SPACE JAM 2024 na área de desenvolvimento de software.

1 Comment

  1. Iury

    7 de agosto de 2023

    Brabo, conteúdo top !!!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Receba as últimas notícias por email

    Cadastre-se, receba nossas novidades em primeira mão por email, antes de todo mundo.

    Codeinsider @2025. Todos os direitos reservados.

    Desenvolvido por House Comunicação