Tekki
|
UBERLÂNDIA MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 16/07/2008 10:20 hs
Pessoal estou realizando um trabalho com VBA e gostaria de saber se alguém conhece alguma forma de liberar memória. O programa roda e vai eliminando a quantidade de memória livre, vai diminuindo até o ponto de gerar erro. Não é a memória do micro mas sim a memória que esta reservada para o sistema. Acredito que o VBA reserve uma quantidade de memória... Sei que nem o VBA nem o VB tem um GC, mas alguém conhece alguma forma de liberar memória?
|
TÓPICO EDITADO
|
|
|
|
|
Donkey
|
PRESIDENTE PRUDENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 17/07/2008 08:53 hs
Procure no baixaki.com.br programas para isso, la tem alguns que vc deixa rodando no systray, e de tempos em tempos ele faz isso.
Usei uma vez num cliente com windows 98 que vivia faltando memoria.... T+
|
|
|
dieimes_
|
CAXIAS DO SUL RS - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 17/07/2008 14:22 hs
Caro Tekki
No vb e no VBA, a melhor forma de liberar a memória é destruir objetos. Ou seja, instanciei um objeto. se não uso mais, destruo ele:ex.:
Dim objetoTal as new recordset objetoTal.open "select * from clientes", conexaotal
'************** faz o que tem q fazer
objetotal.close
' ******************************
' destrói o objeto quando n vai usá-lo mais:
set objetoTal=nothing
No exemplo acima usei um objeto do tipo recordser, mas pode ser qualquer tipo de objeto, classes, collections, etcs....
Fazer essa prática em todos os objetos que você não vai usar, com certeza, vai liberar memória pro sistema. Verigique também se não existem variávies desnecessárias e também muitas variáveis do tipo "Variant", quando pode-se usar um tipo comum.
Espero ter ajudado
|
|
|
Ama
|
UBERLÂNDIA MG - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/07/2008 01:03 hs
aumenta o tamanho da memoria virtual eu uso 2xram pra minima 3xram pra máxima, pra memoria virtual funcionar bem o drive deve estar desfragmentado, e em último caso escolha a opção best of performance
|
|
|
Donkey
|
PRESIDENTE PRUDENTE SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/07/2008 18:30 hs
Esse problema que eu tinha no windows 98 falavam que era algumas ocx q não estavam devidamente registradas, dai ia consumindo.... consumindo... até que não tinha mais....
Tirando esse problema no windows 98, nunca tive problemas desse tipo em outros sistemas operacionais....
+ o lance que o deimes falou, pelo menos pra mim não funcionava... eu sempre fecho os RS depois de usados, mesmo assim dava problema... começava bem, dali a pouco a tela ficava preta, os objetos desconfigurados, vc ia ver tava sem memoria disponivel....
A solução (embora não era 100% foi instlaar um programa desse, que fazia essa limpeza).
T+
|
|
|
Rodrigo Schiavo
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 31/05/2010 16:03 hs
@dieimes_
Eu faço no meu código exatamente o que você disse, mas a memória não é liberada, tenho um SELECT que usa 500mb de memória, e o excel fica praticamente impossivel de utilizar após a execução.
Tem alguma alternativa?
|
|
|