[Done] Why CatchXML needs more memory then LaodXML?
Posted: Wed Jan 07, 2026 7:33 am
Compare case 1 and 2. In both cases the 1 GB XML file is loaded in memory first. In case 1 I use CatchXML from that memory, in case 2 I load the file again from disk. In both cases the same amount of memory is availabe, but case 1 fails, case 2 works.
Code: Select all
filename$ = "/Users/lebostein/x.xml"
; Load file into memory
fileid = ReadFile(#PB_Any, filename$)
*memory = AllocateMemory(Lof(fileid))
ReadData(fileid, *memory, MemorySize(*memory))
CloseFile(fileid)
Select 1
Case 1
; Catch XML from memory above
XML = CatchXML(#PB_Any, *memory, MemorySize(*memory))
If XMLStatus(XML): Debug XMLError(XML): Else: Debug "OK": EndIf ; ---> "out of memory"
Case 2
; Load XML from disc
XML = LoadXML(#PB_Any, filename$)
If XMLStatus(XML): Debug XMLError(XML): Else: Debug "OK": EndIf ; ---> OK
EndSelect