Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TStringGrid-Dateninhalt wirklich darauf zugreifen/löschen

  Alt 3. Mär 2021, 09:33
Delphi baut in die Anwendung einen eigenen Speichermanager ein.
Speicher wird blockweise von Windows angefordert (große Blöcke).
Der Speichermanager führt eine Tabelle, welche Abschnitte jedes Blocks belegt sind.

Neue Speicheranforderungen der Anwendung werden zuerst aus den Lücken in den vorhandenen Blöcken bedient und in der Tabelle eingetragen.
Nur wenn keine passende Lücke mehr frei ist, wird ein neuer Block von Windows angefordert.

Wird Speicher durch die Anwendung freigegeben wird zuerst nur die Tabelle aktualisiert.
Erst wenn die Tabelle für einen Block überhaupt keine verwendeten Speicherbereiche aufzeichnet, kann dieser Block an Windows zurück gegeben werden.

Die Strings aus den Grid und die Strings aus deinen Datenfeldern liegen kreuz und quer über alle Speicherblöcke verteilt.
Gibst du die Strings des Grids frei, erzeugst du erst mal nur Speicherlöcher für den eigenen Speichermanager, die der bei Bedarf wieder verwendet.
Windows bekommt davon nichts mit.
  Mit Zitat antworten Zitat