Thema: FreePascal Effizienz des Speichermanagers

Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#9

AW: Effizienz des Speichermanagers

  Alt 12. Apr 2014, 18:16
Freiblockliste? Nein, sagt mir nichts.
Da du nur eine Blockgröße hast, ist dein Heap mehr oder weniger ein Array aus deinen Records. Einige davon sind belegt, andere frei. Die freien Blöcke kann man in einer direkten Liste ablegen. Das heißt, der Zeiger auf den "nächsten" freien Block steht dort, wo sonst das Record steht. Da die Blöcke alle gleich sind, brauchst du nicht sortieren und kannst einen neu freigegebenen Block in einer O(1)-Operation am Anfang einfügen. Zusätzlich brauchst du nur einen Zeiger auf den Anfang der Liste.

Weil er gibt Speicher wieder zurück!
War mir nicht bekannt, danke für den Hinweis Ist das irgendwo dokumentiert / unter Windows üblich?
  Mit Zitat antworten Zitat