|
|
|
|
|
Dicas
|
|
Visual Basic (Declarações/Variáveis)
|
|
|
Título da Dica: Saiba qual a importância de se declarar suas variávies.
|
|
|
|
Postada em 22/8/2003 por Tekki
Use o código abaixo para fazer os testes, veja que é o mesmo código porem num momento não estou usando um variáveis declaradas e não outro sim.
Dim dDeclarada1 As Double, dDeclarada2 As Double Dim dTest As Double 'Teste sem váriaveis declaradas vTempoGasto = Timer Screen.MousePointer = vbHourglass For vTest = 1 To 999999 vVariant1 = Rnd() * 100 vVariant2 = vVariant1 ^ vVariant2 vVariant2 = Cos(Sin(vVariant1) * Log(vTest)) vVariant2 = vVariant1 ^ vVariant2 vVariant2 = Sin(Sin(vVariant1) * Log(vTest)) Next vtime = Timer - vTempoGasto MsgBox "Tempo " & Format(vtime, "###.0000") Screen.MousePointer = vbDefault
vTempoGasto = Timer 'Teste com váriaveis declaradas Screen.MousePointer = vbHourglass For dTest = 1 To 999999 dDeclarada1 = Rnd() * 100 dDeclarada2 = dDeclarada1 ^ dDeclarada2 dDeclarada2 = Cos(Sin(dDeclarada1) * Log(dTest)) dDeclarada2 = dDeclarada1 ^ dDeclarada2 dDeclarada2 = Sin(Sin(dDeclarada1) * Log(dTest)) Next vtime = Timer - vTempoGasto MsgBox "Tempo " & Format(vtime, "###.0000") Screen.MousePointer = vbDefault
Observe os resultados : Micro usado : P IV 1.6 Mhz com 128 de DDR Tempo Gasto com variáveis não declaradas : 3,53 Tempo Gasto com variáveis declaradas : 2,54
Micro usado : K6-2 500 Mhz com 64 de DIMM Tempo Gasto com variáveis não declaradas : 11,488 Tempo Gasto com variáveis declaradas : 8,133
Os testes foram feitos dentro do IDE do VB. Estas diferenças de tempo ocorrem porque quando o tipo é Variant o VB terá de converter a variável para receber de forma correta o valor inserido.
OBS: Dim I, J as Integer Neste caso só a variável J é integer a outra é do tipo Variant, faça o teste.
I = "A" J = "A"
Na primeira variável o Visual Basic irá preparará a variável para receber o valor pois é do tipo Variant e isto faz com que seja gasto algum tempo. Na segunda variável terá o seguinte erro : "Type mismatch" pois por ser numérica não poderá receber uma String.
|
|
|
|
|