Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.600 Beiträge
 
Delphi 10.3 Rio
 
#1

OutOfMemory Fehler abfangen

  Alt 30. Jul 2016, 00:57
Hallo zusammen,

aktuell stehe ich vor dem Problem, dass ich sehr sehr sehr viele Datensätze aus einer SQLite Datenbank laden muss. An dieser Stelle kann ich auch nichts ändern, da der User explizit so viele Datensätze anfordert. Kann also in dem Fall nicht virtuell arbeiten. In gewissem Maße wird das sogar schon gemacht, da mit dem VirtualTreeView gearbeitet wird. Die Daten werden im Hintergrund in einer komplexen Datenstruktur vorgehalten.

Das Problem ist jetzt, dass bei so vielen Datensätzen der nutzbare Arbeitsspeicher für das Programm ausgeht (32-bit Anwendung). Bei 64-bit kein Problem. Jetzt stelle ich mir nur die Frage, wie ich einen solchen Fehler abfangen kann. Ich merke ja erst dann wenn die Exception ausgelöst wird, dass der Arbeitsspeicher voll gelaufen ist. Nachdem die Exception ausgelöst wurde, kann ich aber meine Struktur im Hintergrund nicht mehr freigeben um nochmal etwas Arbeitsspeicher frei zu machen. Die Folge wenn ich das mache ist, dass die nächste Exception mit OutOfMemory ausgelöst wird.

Wie macht ihr sowas oder kann man das überhaupt abfangen? Falls ihr noch Informationen braucht, dann kann ich euch die gerne geben. Es sei denn es wäre SourceCode. Da müsste ich schauen, was ich veröffentlichen kann. Aktuell geht es mir aber erstmal um das generelle OutOfMemory Problem.
  Mit Zitat antworten Zitat