Einzelnen Beitrag anzeigen

Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
831 Beiträge
 
Delphi 10.4 Sydney
 
#1

Arbeitsspeicher läuft über - wie leeren

  Alt 19. Aug 2010, 08:36
Delphi-Version: 2006
Guten Morgen Zusammen,

ich habe eine Datenbankanwendung geschrieben, in der große Datenmengen (40.000 Datensätze und mehr) verarbeitet werden. Ich arbeite mit TurboDelphi und griefe auf meinen Datenbankserver ohne Komponenten mit Hilfe der mySQL.pas zu.

Die Daten werden mit Hilfe von Array (eindimensional und zweidimensional) verarbeitet.

Ich komme mit meinem Programm nach anderhalb Jahren Entwicklung auf die Zielgraden und stehe nun vor dem Problem, dass der Arbeitsspeicher nicht wieder freigegeben wird.

Beispiel: Ich habe eine Suchfunktion, bei der sehr viele Datensätze in das Programm eingelesen werden. Wenn ich diese ausführe, dann vergrößert sich der Speicher im Arbeitsspeicher um ca.2.600 kbyte.

Ich habe jetzt im Netz gesucht und habe folgenden zwei Versuche gemacht:

1. setlength()
--> Ergebnis: Es hat sich nicht geändert, der Speicher wächst in gleicher Größe weiter an (2.800 kbyte).

2. ZeroMemory(@myArray,SizeOf(MyArray));
--> Ergebnis: Der Speicher wächst fast in dreifacher Größe an - ca. 7.000 kbyte!

Ich habe das ganze mal ein paar Mal ausprobiert und der Speicher wächst und wächst (bei über 400.000 kbyte habe ich dann mal aufgehört...).

Ich hoffe, dass Ihr einen Tip habt, wie ich das Problem lösen kann.

Vielen Dank

Patrick
Patrick
  Mit Zitat antworten Zitat