|
|
|
|
|
Dicas
|
|
Visual Basic (Declarações/Variáveis)
|
|
|
Título da Dica: Cuidado com Variáveis Tipo Variant!!!
|
|
|
|
Postada em 14/8/2000 por Webmaster
webmaster@vbweb.com.br
Evite usar as variáveis do tipo Variant a todo custo, pois elas consomem MUITO mais memória. Para se ter uma idéia, enquanto uma variável String requisita 1 byte, uma Integer requisita 2bytes, uma Long requisita 4 bytes e uma Double ou Date requisita 8 bytes, uma Variant requisita, no mínimo, 16 bytes + 1 byte por caracter, ou seja, o dobro do maior valor requisitado dos outros tipos. Até mesmo um objeto de OLE requisita apenas 4bytes!
O uso de uma variável Variant sacrifica um pouco o desempenho do programa exatamente pela requisição mais acentuada da memória e pelo fato do consumo mínimo da estrutura (16 bytes para variants com números e 22 bytes mais o comprimento da string para variants com strings).
Seu uso quase que só é aprovado em funçoes onde você não tem como antecipar o tipo de variável que irá receber... Pode ver que várias declarações de APIs usão parâmetros Variant.
O uso de variants como variáveis globais ou estáticas deve ser evitado a todo custo e nem deve ser empregada em qualquer tipo de loop (o desperdício e a queda de desempenho seria multiplicado por cada passagem pela referência.)
O motivo disso tudo é que o tipo Variant tem que ter, internamente, todos os métodos e tratamentos dos outros tipos de dados. Veja que as conversões são feitas automaticamente.
Também tem o detalhe de este tipo de variável não faz validação de nenhum tipo. Por exemplo, se você colocar numa variável Variant uma data e concatenar (somar) uma string ela aceita sem dar NENHUM tipo de erro.
A única vantagem das variáveis tipo Variant é que elas pode conter valores especiais, como Null, Error e Empty.
|
|
|
|
|