Zitat von
himitsu:
deswegen solltest du bei nahezu allen
XML-Parsern probleme bekommen, da sie oftmals erstmal die gesamte Datei in den
RAM laden und darun dann parsen.
Oder einfach MMF nutzen, dann wird gemappt (stückchenweise) und nichts explizit in den Speicher gehauen.
Zitat von
himitsu:
..... also bei über weit 1 GB bekommst du so oder so arbe Probleme diese in ein 32-Bit-Delphi-Programm reinzubekommen, wo nur ~2 GB zur Verfügung stehen.
So lange die Arbeit mit den Zeigern und offsets nicht mit vorzeichenbehafteten Typen von statten geht, kann man leicht mit FastMM und der $SetPEFlags Compilerdirektive die 3,2 GB nutzbar machen. Ich setze es in ein ein paar Projekten ein (auch grosse) und das klappt einwandfrei. Dann hat man nochmal immerhin 1.2 GB weiteren Spielraum.
/EDIT: zu den MMF: Wenn die
XML Lib es unterstützt aus einem TStream Nachfahren zu Laden, dann nutze die MMF Filestream Implementation aus meiner XMLLib. Diese implementiert das MMF transparent ohne das der Nutzer des TStream Nachfahren was davon bemerkt.