Ich habe mal Messungen durchgeführt.
Dabei wird eine Datei mit 2MB mit unterschiedlichen Blockgrössen beschrieben und gelesen.
Zitat:
write 2097152 blocks à 1 bytes: 9893,44 ms
write 1048576 blocks à 2 bytes: 4299,12 ms
write 524288 blocks à 4 bytes: 2123,33 ms
write 262144 blocks à 8 bytes: 1058,08 ms
write 131072 blocks à 16 bytes: 532,53 ms
write 65536 blocks à 32 bytes: 267,13 ms
write 32768 blocks à 64 bytes: 133,15 ms
write 16384 blocks à 128 bytes: 67,83 ms
write 8192 blocks à 256 bytes: 35,17 ms
write 4096 blocks à 512 bytes: 18,39 ms
write 2048 blocks à 1024 bytes: 10,77 ms
write 1024 blocks à 2048 bytes: 7,41 ms
write 512 blocks à 4096 bytes: 5,19 ms
write 256 blocks à 8192 bytes: 4,13 ms
write 128 blocks à 16384 bytes: 3,58 ms
write 64 blocks à 32768 bytes: 3,30 ms
write 32 blocks à 65536 bytes: 3,22 ms
write 16 blocks à 131072 bytes: 3,38 ms
write 8 blocks à 262144 bytes: 4,13 ms
read 2097152 blocks à 1 bytes: 5472,27 ms
read 1048576 blocks à 2 bytes: 2742,54 ms
read 524288 blocks à 4 bytes: 1386,96 ms
read 262144 blocks à 8 bytes: 686,22 ms
read 131072 blocks à 16 bytes: 344,67 ms
read 65536 blocks à 32 bytes: 171,07 ms
read 32768 blocks à 64 bytes: 88,16 ms
read 16384 blocks à 128 bytes: 43,79 ms
read 8192 blocks à 256 bytes: 22,13 ms
read 4096 blocks à 512 bytes: 11,95 ms
read 2048 blocks à 1024 bytes: 6,69 ms
read 1024 blocks à 2048 bytes: 3,85 ms
read 512 blocks à 4096 bytes: 2,51 ms
read 256 blocks à 8192 bytes: 1,90 ms
read 128 blocks à 16384 bytes: 1,51 ms
read 64 blocks à 32768 bytes: 1,36 ms
read 32 blocks à 65536 bytes: 2,97 ms
read 16 blocks à 131072 bytes: 1,93 ms
read 8 blocks à 262144 bytes: 2,88 ms
Ein günstige Puffergrösse wäre wohl 8kB.
Interessant ist, das die Leistung bei Puffer über 32kB eher schlechter wird.
PS: TFileStream ist ungepuffert und sehr nahe am Betriebssystem.