Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
296
Assunto : .NET
Titulo: Concatenação rápida de strings

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Varias dicas sobre performance redigidas em muitos sites sobre VB 6 explicavam que a concatenação de strings em um laço envolve muitas alocações de memória, prejudicando a performance da aplicação.

Para resolver o problema o ambiente .NET traz o StringBuilder, um objeto string que possui métodos para agilizar o processo de concatenação de strings. Veja os dois trechos de código abaixo :

Exemplo A :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = Now()
Dim x As Integer
Dim y As String
For x = 1 To 100000
y &= "a"
Next
Label2.Text = Now()
End Sub

Exemplo B :

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Label3.Text = Now()
Dim x As Integer
Dim y As System.Text.StringBuilder
y = New System.Text.StringBuilder()
For x = 1 To 100000
y.Append("A")
Next
Label4.Text = Now()
End Sub


Como podem observar foram utilizados labels para medir o tempo de execução. Em ambos os códigos estamos fazendo a concatenação de 100000 "As" em uma variável string. Mas no 1o exemplo utilizamos uma concatenação normal e no 2o exemplo utilizamos o objeto stringBuilder para realizarmos a concatenação.

Enquanto o exemplo A levou 11 minutos e 42 segundos para executar, não foi possível medir o tempo de execução do exemplo B, que foi inferior a 1 seg.

Quando aumentei em 2 0s o laço do exemplo B, subindo a concatenação para 10 milhões de caracteres, obtive o tempo de 18 segundos. Não cheguei a testar com o exemplo A, pois com apenas 1 milhão de caracteres desisti do teste após 25 minutos de espera.



Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br