Vorreservieren von Speicher

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Vorreservieren von Speicher

Beitrag von diogenes »

Gibt es eine Möglichkeit, sich einen Speicherblock zu vorzureservieren? Will heißen, ich hole mir, sagen wir 512 MiB an Speicher als privaten Heap, in den abgelegt wird, bis er voll ist, und dann erst greift die Anwendung auf den allgemen Heap zu. Geht das? Und wenn ja, wie?
Ceterum censeo computatores per Pascal docendos esse.

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Vorreservieren von Speicher

Beitrag von Socke »

diogenes hat geschrieben:Gibt es eine Möglichkeit, sich einen Speicherblock zu vorzureservieren? Will heißen, ich hole mir, sagen wir 512 MiB an Speicher als privaten Heap, in den abgelegt wird, bis er voll ist, und dann erst greift die Anwendung auf den allgemen Heap zu. Geht das? Und wenn ja, wie?

Für den Standard-Memorymanager gilt musst du:
  • Die Variable MaxKeptOSChunks auf eine geeignete Größe stellen
  • Speicher reservieren
  • Speicher freigeben
Je nach Betriebssystem musst du den Speicher nach der Reservierung mindestens einmal beschreiben oder auslesen; Linux z.B. weist den Speicher zwar zu, kann ihn bis zur ersten Verwendung auch noch an andere Prozesse zuweisen.

Exakt 512 MiB zu reservieren wird schwierig; ggf. musst du die Werte von growheapsizesmall, growheapsize1 und growheapsize2 ändern.

Die Frage ist eigentlich: warum willst du das tun? In der Regel reicht es, den Speicher bei erster Verwendung zu reservieren und nicht vorab.

Edit: andere Memorymanager, z.B. der aus der Unit cmem, arbeiten anders und werten diese Variablen ggf. nicht aus.
Zuletzt geändert von Socke am Mo 2. Apr 2018, 10:01, insgesamt 1-mal geändert.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

diogenes
Beiträge: 200
Registriert: So 11. Jul 2010, 18:39
OS, Lazarus, FPC: Linux
CPU-Target: 64 Bit
Wohnort: Wien
Kontaktdaten:

Re: Vorreservieren von Speicher

Beitrag von diogenes »

Danke für die Info.

Der Grund liegt darin, dass ich eine Bilderverwaltung mit Betrachter schreibe, und das bedeutet intensive Speichermanipulation, wie Du Dir denken kannst. Ich hoffe, dadurch dem System schwerere Arbeit zu ersparen und so Zeit zu gewinnen.
Ceterum censeo computatores per Pascal docendos esse.

Antworten