9GB übermäßig groß scheint in zu lesen. Ich würde sagen, dass auch 3Gb in einem Rutsch zu groß ist.
Ist Ihr Betriebssystem 64bit?
Wie hoch ist die maximale Auslagerungsdateigröße?
Wie viel RAM haben Sie?
Haben Sie dies im Debug- oder Release-Modus ausgeführt?
Ich würde vorschlagen, dass Sie versuchen, das XML in kleineren Brocken zu lesen.
Warum versuchen Sie, eine solche große Datei auf einmal zu lesen?
Ich würde mir vorstellen, dass Ihre Anwendung so lange dauerte, bevor sie fehlschlug, als sie anfing, die Datei in den virtuellen Speicher zu kopieren, was im Grunde eine große Datei auf der Festplatte ist. Daher liest das Betriebssystem die XML-Datei von der Festplatte und schreibt sie auf einen anderen Festplattenbereich zurück.
** Bearbeiten - hinzugefügt Text **
Nachdem hatte einen kurzen Blick auf Expat XML-Parser es so aussieht, wenn Sie mit Stapel oder ein Ereignis in Probleme laufen sind Handhabung, die meisten wahrscheinlich, dass Sie zu viel hinzufügen zum Stapel.
Benötigen Sie wirklich 3 GB Daten auf dem Stack? Bei einer Schätzung würde ich sagen, dass Sie versuchen, eine XML-Datenbank-Datei zu verarbeiten, aber ich kann mir nicht vorstellen, dass Sie eine so große Tabellenzeile haben.
Ich denke, dass Sie es wirklich verwenden sollten, um nach Schlüsselbereichen zu suchen und zu verwerfen, was nicht gewollt ist.
Ich weiß nichts anderes als was ich gerade über Expat XML Parser gelesen habe, würde aber vorschlagen, dass Sie es nicht auf die effizienteste Weise verwenden.
Okay - Entschuldigung für die Verzögerung bei der Rückkehr zu Ihnen. Wie liest du diese Datei ein? – ChrisBD
Wenn Sie ein SAX-Ereignis haben, was machen Sie dann mit den Daten, die es Ihnen gibt? Es klingt wie du ein Speicherleck hast. –
möchten Sie möglicherweise Antworten auf einige Ihrer Fragen akzeptieren; das würde andere ermutigen, dir dabei zu helfen. – CesarGon