für den Stack ... den hättest du ja auch einfach vergrößern können (mit {$M... glaub'sch) , aber ich denke mal der winzige Geschwindigkeitsvorteil, bei der Speicherreservierung, gegenüber von GetMem und Co. dürfte bei dir kaum auffallen, da's ja nur einmal (für eine Datei) benötigt wird.
Nach meinen Tests sind 0,5 bis 1 MB völlig ausreichend, bei mehr wird's oftmals eh wieder langsamer. Jedenfalls bei großen und kleinen Dateien gemischt, man könnte höchstens noch die Buffergröße an die Dateigröße anpassen
Was du aber noch machen könntest wäre ohne FileCache direkt auszulesen und zu schreiben, vorallem bei (sehr) großen Dateien bringt das recht viel, allerdings mußt du dann auf die Sectorgröße aufpassen, da nur ganze Sektoren ausgelesen werden können.
CreateFile, FILE_FLAG_NO_BUFFERING
Oder da du eh schön der Reihe nach die Dateien abarbeitest sollte (angeblich, laut MS) FILE_FLAG_SEQUENTIAL_SCAN etwas helfen (theoretisch sollte es aber zusammen mit FILE_FLAG_NO_BUFFERING keine Auswirkungen haben)
Und für's Schreiben dann das FILE_FLAG_SEQUENTIAL_SCAN mit FILE_FLAG_WRITE_THROUGH kombinieren.
Von Scatter/Gather hab ich zwar och mal was gehört, aber mir war so, als wenn negaH dort meinte es würde eh kaum, wenn überhaupt Vorteile bringen (könnte sein, daß darüber was im Forum rumschwirrt)
[add]
Im
PSDK steht jedenfalls nicht viel dazu, hatte mich da gestern zufällig mal durch die Dateifunktionen gewurschtelt.
Aber ich bin mir relativ sicher, daß Hagen mal ein Wort darüber hier verloren hatte