TXml não libera memoria
Publicado: Jue Ago 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.
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.