Vorreservieren von Speicher

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Vorreservieren von Speicher

Beitragvon diogenes » 2. Apr 2018, 08:34 Vorreservieren von Speicher

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.
diogenes
 
Beiträge: 177
Registriert: 11. Jul 2010, 17:39
Wohnort: Wien
OS, Lazarus, FPC: Linux (L 0.9.xx FPC 2.2.z) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Socke » 2. Apr 2018, 08:57 Re: Vorreservieren von Speicher

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 2. Apr 2018, 09:01, insgesamt 1-mal geändert.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2540
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon diogenes » 2. Apr 2018, 08:59 Re: Vorreservieren von Speicher

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.
diogenes
 
Beiträge: 177
Registriert: 11. Jul 2010, 17:39
Wohnort: Wien
OS, Lazarus, FPC: Linux (L 0.9.xx FPC 2.2.z) | 
CPU-Target: 32Bit
Nach oben

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste

porpoises-institution
accuracy-worried