Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.464 Beiträge
Delphi 12 Athens
|
AW: TStringGrid-Dateninhalt wirklich darauf zugreifen/löschen
3. Mär 2021, 10: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.
|