Einzelnen Beitrag anzeigen

HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#1

File IO mit dem Windows-API?

  Alt 4. Jun 2008, 10:53
Hallo Leute, gerade bin ich dabei, meine FileIO-Unit (WindowsXP, Delphi6, Turbo Delphi 2006), die ich in meinen Projekten einsetze, aufzupolieren, um den Programmablauf zu beschleunigen (vor allem für eine Simulation, die einige Tage läuft, und intensiv auf der Platte herumfuhrwerkt - einerseits soll's schneller gehen, andererseits tut mir die Platte leid).

Ich bin zumindest schon so weit, dass ich die Files in möglichst großen Portionen auf die Platte schreibe (z.B. mit Blockwrite), bzw. typisierte Dateien verwende, und in möglichst großen Portionen schreibe/lese. Das war schon mal ein großer Fortschritt.

Aber jetzt hab' ich mir das Tool "File Monitor" von Mark Russinovich (sysinternals) downgeloaded, wo man sehr gut mitschauen kann, was passiert.

Und: Ich kieg' die Kriese!!!!
Mein Code kann noch nicht optimal sein! Permanent sieht man auf low-level-Ebene, CLOSE gefolgt von OPEN für das gleiche File (diese korrespondieren NICHT zu reset/close auf high-level-Ebene. Dann werden Fileattribute, die ich setze (und die meiner Programmlogik damit bekannt sind), sofort danach, bei der nächsten Funktion der high-level-Ebene wieder abgefragt.
-> Alles in allem SEHR SEHR viel unnötiger Overhead.

Daher meine Frage:
Kann man den Filezugriff nicht etwas low-levelliger machen, vielleicht direkt mit dem Windows-API??? Gibt's da ev. ein Tutorial?

Viele Grüße,
Helmut
  Mit Zitat antworten Zitat