USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic.Net    (Datas/Números/Strings)

Título da Dica:  Concatenação rápida de strings
Postada em 26/1/2004 por Ozzys      Clique aqui para enviar email para o autor  andrecetsi@pop.com.br
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.
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página