Thema: Delphi Memory Mapped Files

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 21. Sep 2002, 04:03
Moin Luckie,

da Du ja PSDK geübt bist, kann ich Dir, vorerst einmal, mit den benötigten APIs aushelfen.

Das wären zum einen CreateFileMapping, um ein entsprechendes Objekt zu erzeugen, dann MapViewOfFile, um die Datei in den Speicher des Programmes einzublenden. Dabei wird die Datei nicht geladen.
Wenn die Arbeit getan ist, kann mit UnmapViewOfFile das Objekt wieder freigegeben werden.

Da die Memory Mapped Files eigentlich dazu gedacht sind auf Teile einer Datei zuzugreifen, ohne die gesamte Datei lesen zu müssen (z.B. wenn ein grosses Dokument geladen werden soll, kann physikalisch erst einmal der Teil geladen werden, der auch sichtbar ist, erst wenn gescrollt wird, wird, physikalisch, nachgeladen), Du aber für Deinen FileSplitter eh' die ganze Datei lesen musst, habe ich nur meine Zweifel, dass diese Technik Dein Programm schneller macht, ausser die Datei ist sehr gross, und der reale Speicher sehr klein, so dass die Datei nicht auf einmal in den (realen!) Arbeitsspeicher passt, und die Auslagerungsdatei benutzt werden muss.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat