Fórum Vazamento de memória: o que é isso? #372205

13/07/2009

0

Já li em alguns lugares que certo código tinha um problema de ´vazamento de memória´ :shock: . O que é isso :?:

Algo tipo monitor de cristal liquido, que quando quebra vazam os cristais (afinal são cristais liquidos)? :D (já ouvi essa em sala de aula, desculpem mas não resisti....)


Willian

Willian

Responder

Posts

13/07/2009

Osocram

Então amigo... Essa é uma parte que poucos programadores se preocupam, infelizmente.
E é um dos principais motivos dos milagrosos ´Access violation´ que aparecem do nada.

Mas é o seguinte respondendo a sua pergunta:
- Se vc criar um componente em Run-time e não destruir ele, ele vai ficar na memoria p sempre enqto seu sistema esta aberto. Agora para piorar um pouco mais, imagina que vc cria um compenente no on create do form e não destroi o componente, agora imagina que vc abre este form varias vezes. então vai ficar com varios lixos na memoria.

por isso é recomendavel sempre que cria um objeto usar Try finally
ex.
objeto := TObject.Create;
try
faz as coisas
finally
FreeAndNil(objeto)
end;

e perceba que o TObject.Create esta fora do Try... Muitos erram em deixar ele dentro do bloco Try, e tem que ficar fora mesmo.. pois se der um erro ao criar ele nao deve ir para o finally pois vai dar erro qdo tentar liberar um objeto e ele não estiver criado.

Espero ter explicado em vez de complicado.

Flw.

Já li em alguns lugares que certo código tinha um problema de ´vazamento de memória´ :shock: . O que é isso :?: Algo tipo monitor de cristal liquido, que quando quebra vazam os cristais (afinal são cristais liquidos)? :D (já ouvi essa em sala de aula, desculpem mas não resisti....)



Responder

Gostei + 0

13/07/2009

Willian

Respondeu sim, muito obrigado.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar