|
|
|
|
|
Dicas
|
|
Visual Basic (ActiveX/Controles/DLL)
|
|
|
Título da Dica: Melhor forma de esvaziar uma collection
|
|
|
|
Postada em 3/9/2003 por Ð@®l@n
Normalmente, quando desejamos esvaziar uma collection utilizamos o seguinte código :
for a=coll.count to 1 step -1 coll.remove a next
O problema desse código é que para que o último item da collection seja removido o Vb precisa percorrer toda a collection, gerando perda de performance. Veja este outro exemplo :
for a=coll.count to 1 step -1 coll.remove 1 next
Neste caso o item que estará sendo removido da collection será sempre o 1o, melhorando a performance.
Segundo testes, o 1o item leva 4.10 segundos para eliminar um array de 10.000 itens, enquanto que o 2o leva 0.06 segundos.
Se o volume de dados for dobrado os números mudam : 0.12 para o 2o exemplo e 24 segundos para o 1o.
Mas não se esqueçam que a instrução :
Set coll=nothing
Roda em 0.05 segundos mesmo para uma collection com 20.000 itens.
|
|
|
|
|