Pesquisar na Comunidade
Showing results for tags 'padrões'.
Encontrado 1 registro
-
memória Dúvida - Free vs FreeAndNil vs DisposeOf vs Destroy/Nil
um tópico no fórum postou felipetomm Object Pascal - Delphi & Lazarus
Bom dia pessoal. Acredito que problemas relacionados com memória sejam um dos capítulos marcantes no início da carreira de desenvolvedores. Se minha colocação estiver correta, então chegou a minha vez Estou passando por uma certa dificuldade em encontrar qual a maneira ideal para realizar a liberação de memória de nossa aplicação (objetos, componentes, etc...). Vou primeiro para a descrição do nosso problema. Nossa aplicação atualmente não possuí vazamentos de memória (memory leaks). Este diria que foi o primeiro item do capítulo que nos deparamos e eventualmente corrigimos, com a utilização do FastMM4. Então, o problema que estou passando é que nosso software está apresentando um crescimento constante na alocação de memória do S.O. Ou seja, ele inicia com 50mb, e ao longo do dia, após executar determinadas operações repetidamente, se encontra com 150~170~... mb. Com isso, em determinados momentos é apresentado o erro de "Out of Memory", ocasionando uma série de outros alertas ao usuário. Num primeiro momento, chegamos a pensar que de fato ainda havia vazamentos de memória. Porém, efetuamos o encerramento natural do software em um caso onde a memória do processo chegava a 170mb, e mesmo assim, não foi apresentado nenhum vazamento de memória. Artigos pra lá, artigos pra cá, nos deparamos com diversas colocações aconselhando única e exclusivamente o FreeAndNil. Ao mesmo tempo, outras informando que o uso do FreeAndNil deve ser evitado em 99,9% das vezes em que pretendemos utilizá-lo. Como mencionei inicialmente, acredito que esta seja uma dúvida muito pertinente para a grande maioria dos desenvolvedores iniciantes (ou não), não sabendo qual a maneira mais correta e adequada para efetuar a liberação de objetos. Gostaria que cada um relatasse vivências e dores que já teve em situações desse tipo, pois acredito que apenas uma descrição bem colocada, madura e real seja o suficiente para que cada desenvolvedor possa compreender o real significado de quando usar ou não determinada chamada.