In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

TXml não libera memoria

Foro público de Xailer en español
User avatar
Marcelo Coelho Silva
Posts: 266
Joined: Sat May 31, 2008 4:49 pm

TXml não libera memoria

Postby Marcelo Coelho Silva » Thu Aug 16, 2018 2:00 pm

Prezados Amigos,

Estou utilizando a Classe TXml para Processar informações de Milhares de XML da forma abaixo:

Local oXml, cFileXml

.....

Do While .....

.......

oXml := TXmlDocument():New()
oXml:Read( MemoRead( cFileXml ))

......

EndDo


O problema é que com o uso do método "NEW " a cada interação do LOOP (doWhile/EndDo) mais memoria vai sendo alocada até o limite do Windows (a Aplicação da erro por falha na alocação de memoria). Caso o "NEW" seja colocado fora do "LOOP" o método "READ" acumula as leituras dos XML (cFileXml) uma sobre a outra, alocando a mesma quantidade de memoria, assim provocando o mesmo erro do Windows.

Alguém saberia um "método" que apagasse o conteúdo de oXml antes do uso do "READ" (para que não acumulasse mais memoria) ou um "método" que liberasse a memoria apos o uso do object oXml (liberando a memoria utilizada por ele) ?

Desde já agradeço a quem puder ajudar.
Att.

Marcelo Coelho Silva
Brasil.
User avatar
Marcelo Coelho Silva
Posts: 266
Joined: Sat May 31, 2008 4:49 pm

Re: TXml não libera memoria

Postby Marcelo Coelho Silva » Thu Aug 16, 2018 8:18 pm

Me reapoderam e outro Fórum:

Utilizar a Função hb_gcAll() // Chamada ao Garbage Collector -> limpa "lixo" da memória
Att.

Marcelo Coelho Silva
Brasil.

Return to “Spanish”