Thema: Delphi Out of Memory

Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#7

Re: Out of Memory

  Alt 2. Aug 2007, 14:48
Zitat von simlei:
Ich lese sehr viele Kundendaten aus Outlook aus. Dabei müssen viele Emails verschmolzen werden (die Daten), ohne dass ich vorher weiß welche und wieviele. das erkenne ich erst wenn ich sie auslese (Schlüssel steht in den Mials selbst). Deshalb kann ich nicht einfach einen Teil abarbeiten und dann den nächsten nehmen, da _vielleicht_ das allererste und das allerletzte Item zusammengehören und ich sie so im Speicher halten muss.
Da solltest Du Dich mit der Idee eines Index beschäftigen. Ist eigentlich klassisch in jedem DBS zu finden! Du liest einfach die Datensätze ein und erstellst einen Index über die Schlüssel. Hier solltest Du einen Schlüssel finden können, der deutlich kleiner als der komplette Inhalt der Mail ist oder sind gerade die 16 String Felder Dein Schlüssel? Wichtig bei der Idee wäre, dass Du eben nicht die mails selbst im Speicher hälst, sondern nur die Liste der Schlüssel und Verweise auf alle mails zu einem Schlüssel (da sollte es schon dauern, bis Du 2 GByte voll bekommst!). Hast Du so vorsortiert, kannst Du dann gezielt immer zwei mails zusammenführen. Sollte Dein Index auch hier noch zu groß werden, dann unterteile weiter, verwalte z.B. einfach einen Präfixbaum, der wiederum die einzelnen Strukturen verwaltet, die eben alle einen Schlüssel haben der mit genau diesem Präfix beginnt (ausgehend davon, dass man im Mittel eine angenäherte Gleichverteilung hat).
  Mit Zitat antworten Zitat