Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.195 Beiträge
 
Delphi 12 Athens
 
#9

Re: Sehr dynamische Speicherverwaltung

  Alt 30. Apr 2009, 17:38
Ein Index ist sozusagen eine Liste oft mit Zeigern auf die entsprechenden Daten
weöche dann selber sortiert werden und und wo man eventuell noch weitere Daten drin speichern/erstellen kann, welche zur Optimierung des Suchen bzw. Verwaltung dienen.

die Kommentage kann man ja nach dem Laden wieder löschen

und was die Delimiter angeht
- entweder nach dem Laden dein " :: " durch nur ein Zeichen ersetzen
- oder eine extra Funktion erstellen, welche dieses dann beim Auslesen eines Wertepaares trennt

MMF = Memory Mapped File
es wird parktisch ein Speicherbereich innerhalb des Virtuellen Prozessspeichers deines Programms reserviert und mit de Datei verknüpft.
Also es wird erstmal kein "echter" RAM damit belegt
beim Zugriff auf diesen Speicherbereich läd Windows den nötigen Teil der Datei in die WindowsFileCache und und erstellt einen Link zwischen dem Speicherbereich und dem Speicher (im RAM) der WindowsFileCache ... diese bereiche werden nun dynamisch (wenn nötig) in die WFC geladen, oder wieder freigegeben und notfalls zurück in die Datei gespeichert (wenn man in diese, Speicherbereich rumschreibt)

in der Auslagerungsdatei landet davon nix.
je mehr physischer RAM frei ist, desto mehr kann in die WFC geladen werden und ist so schneller verfügbar.

Zitat:
Kann ich irgendwo nachlesen wie es das genau macht, damit ich weis/verstehe wie man effizient Datenformate in den Speicher lesen kann?
da du eine Professional hast und somit die Delphi-SourceCodes bei liegen ... schau doch einfach direkt nach

LoadFromFile liegt im TStringList-Vorfahr TStrings (siehe Unit Classes.pas)
dort wird die Datei über einen TFileStream in einen String geladen und an TStrings.SetTextStr übergeben
und SetTextStr zerlegt dann den String und übergibt die einzelnen Zeilen dann an die Funktion .Add.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat