AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi RAM, virtuelle Adressierung, Auslagerungsdatei - reservieren
Thema durchsuchen
Ansicht
Themen-Optionen

RAM, virtuelle Adressierung, Auslagerungsdatei - reservieren

Ein Thema von Puhbaehr · begonnen am 7. Jun 2007 · letzter Beitrag vom 7. Jun 2007
 
Puhbaehr
(Gast)

n/a Beiträge
 
#1

RAM, virtuelle Adressierung, Auslagerungsdatei - reservieren

  Alt 7. Jun 2007, 14:11
Hallo DPler,

ich kenne den Unterschied zwischen physischem RAM, dessen virtuellen Speicheradressierung und dem virtuellen Speicher - der Auslagerungsdatei.
Ich nahm bisher an, dass der Taskmanger unter "virtueller Speicher" mir den Speicherverbrauch der Auslagerungsdatei zeigt.
In einem Programm wollte ich reelen Speicher anfordern (hab mit LocalAlloc und dyn./stat. Arrays rumprobiert). Aber im Taskmanger wurde nicht wie erwartet unter der Spalte "Speichernutzung" ein erhöhter Bedarf festgestellt sondern stattdessen in der Spalte "virtueller Speicher".

D.h. meine Daten liegen nun in der Auslagerungsdatei? Wie kann man das richtig verstehen?

Der Speicheroptimierer von TuneUp zeigt auch die Speichernutzung des physischen Speichers. Laut diesem werden die dyn. und stat. Arrays im physischem Speicher abgelegt. Die Speicherreservierung von LocalAlloc verschwindet eindeutig in der Auslagerugnsdatei.

Mit welchen Funktionen kann man vernünftig und schnell Speicher reservieren der sich auch tatsächlich im RAM befindet? Ich benötige für das Programm mehrere kleinere Speicherblöcke in denen ich Dateien von der Festplatte einlesen kann. Die Daten sollen dabei möglichst schnell greifbar für den Prozessor liegen damit dieser später schnell auf die Daten zugreifen und allesamt hintereinander ausführen kann.
Laut PSDK ist LocalAlloc langsamer. Ich denke mir wegen der Auslagerung.
Laut DP lassen sich mit VirtualAlloc nur größere Speicherbereiche reservieren und damit nicht allzuviele.

Andersrum: Gibt es auch Funktionen mit denen ich explizit festlegen kann "bitte in der Auslagerungsdatei reservieren". Ich möchte "unwichtige" Sachen wie Benutzereinstellungen nicht in den knappen RAM ablegen.

In einigen Beiträgen hab ich über Delphi-Funktionen wie GetMem gelesen die aber bei erst wieder mit dem Beenden des Programmes für Windows freigegeben werden. Da wurde auf die Windows-Funktionen (VirtualAlloc, LocalAlloc) hin verwiesen.

Ich wäre für ein paar Tipps dankbar.

Gruß,
Robert

EDIT: Ich werde auf VirtualAlloc zurückgreifen und in einem großen Speicherbereich mehrere Dateien ablegen und einfach auf die Blöcke referenzieren. Mal schauen ob das was wird.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz