Möglicherweise musst Du Dich noch mit dem Windows Dateicache auseinandersetzen. Ein und derselbe Code habe hier auf dem System zeigt höchst unterschiedliche Laufzeiten. Die 500 Mbytes benötigen zwischen 1.6 und 8 Sekunden, um ihren Weg auf die Platte zu finden.
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, System.Classes,
System.Diagnostics;
const
ZwanzichMB = 1024 * 1024 * 20;
var
LStream : TFileStream;
LBytes : TBytes;
LWatch : TStopwatch;
i : integer;
begin
DeleteFile('
C:\Temp\wuppdi.dat');
WriteLn('
bereite Daten vor ...');
SetLength( LBytes, ZwanzichMB );
FillChar( LBytes[Low(LBytes)], Length(LBytes), 42 );
WriteLn('
schreibe Daten ...');
LWatch := TStopwatch.StartNew;
LStream := TFileStream.Create( '
C:\Temp\wuppdi.dat', fmCreate
OR fmOpenWrite );
TRY
for i := 1
to 25
do
LStream.
Write( LBytes, Length(LBytes) );
FINALLY
LStream.Free;
END;
LWatch.Stop;
WriteLn( '
fertig nach ', LWatch.ElapsedMilliseconds, '
msecs' );
ReadLn;
end.
Daniel R. Wolf
mit Grüßen aus Hamburg