Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»A performance do StringBuilder – concatenando strings em C# Asp.net

    A performance do StringBuilder – concatenando strings em C# Asp.net

    Jhonathan SoaresBy Jhonathan Soares4 de maio de 20143 Mins Read Asp.net
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    Você que alguma vez utilizou String para para concatenar caracteres pode muitas vezes ter utilizado sem perceber que alguma coisa atrapalha (nem que por pouco) a performance do seu código. Hoje vamos falar da StringBuilder ou melhor dizendo, construtor de strings.

    Sobre a classe StringBuilder

     

    A String Builder é uma ferramenta que você pode utilizar para manipular strings de maneira bem mais otimizada.

    A classe String Builder já aproveita o buffer de rede de caracteres que esta sendo usado para otimizar o desempenho.

    Já a operação de concatenação simples, referencia a cada loop uma nova referência de objeto pois o objeto String é imutável

    Vamos ao nosso pequeno tira-teima :

     static void Main(string[] args)
            {
                Stopwatch st = new Stopwatch();
    
                string Letras = "CodigoSimples.NET";
                st.Start();
                for (int i = 0; i < 1500; i++)
                {
                    Letras = Letras + "CodigoSimples.NET";
                }
                st.Stop();
                //-----------------------------------------------------------------------------------
                Console.WriteLine("Usando String :-> tempo gasto : " + st.ElapsedTicks);
                st.Restart();
                System.Text.StringBuilder sb = new System.Text.StringBuilder("CodigoSimples.NET");
                for (int i = 0; i < 1500; i++)
                {
                    sb.Append("CodigoSimples.NET");
                }
                st.Stop();
                Console.WriteLine("Usando Stringbuilder :-> tempo gasto : " + st.ElapsedTicks);
                Console.ReadLine();
            }
            

    Veja o resultado:

    stringbuilder

    A operação usando StringBuilder é MUITO mais rápida.

    Por isso, na próxima vez que concatenar strings, utilize a operação StringBuilder ( System.Text.StringBuilder )

    Um abraço a todos!

    Quem quiser fazer download do projeto : Download

    Para leitura complementar, veja o que a Microsoft ainda diz sobre :

    O objeto String é imutável. Toda vez que você use um dos métodos na System.String classe, que você cria um novo objeto de seqüência de caracteres na memória, que requer uma nova alocação de espaço para o novo objeto. Em situações em que você precise realizar modificações repetidas uma seqüência de caracteres, a sobrecarga associada à criação uma nova String o objeto pode ser caro. A classe System.Text.StringBuilder pode ser utilizada quando você desejar modificar uma sequência de caracteres sem criar um novo objeto. Por exemplo, usando o StringBuilder classe pode melhorar o desempenho quando concatenando muitas cadeias de caracteres juntos em um loop.

    Embora o StringBuilder seja um objeto dinâmico que lhe permite expandir o número de caracteres da cadeia de caracteres que ele encapsula, você pode especificar um valor para o número máximo de caracteres que ele pode armazenar. Esse valor é chamado a capacidade do objeto e não deve ser confundida com o comprimento da string que contém o atual StringBuilder. Por exemplo, você pode criar uma nova instância da classe StringBuilder com a cadeia de caracteres “Hello”, que tem um tamanho de 5, e você pode especificar que o objeto tem uma capacidade máxima de 25. Quando você modifica o StringBuilder, ele não realoca o seu tamanho  até que a capacidade seja atingida. Quando isso ocorre, o novo espaço é alocado automaticamente e a capacidade é dobrada. Você pode especificar a capacidade da classe StringBuilder usando um dos construtores sobrecarregados. Veja mais em : http://msdn.microsoft.com/pt-br/library/2839d5h5%28v=vs.110%29.aspx

    Bom pessoal, é isso! Não deixe de acessar nossa Fã Page

    c#
    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    Boas práticas de criação, armazenamento e validação de senhas em .NET

    Asp.net Boas práticas 9 de julho de 20248 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile