Zitat von
HHick123:
Das wäre natürlich ein Argument, von TFileStream abzuweichen und direkt auf das Windows-
API aufzusetzen.
TFileStream puffert
nicht, die Daten werden direkt an die Windows-
API durchgereicht!
Hier die Messungen:
Zitat:
Windows
API: write 1048576 blocks à 1 bytes: 5015 ms
TFileStream: write 1048576 blocks à 1 bytes: 5047 ms
Der Unterschied beträgt ganze 32ms, wenn man eine Datei mit einem MB byteweise schreibt.
Das waren über eine Million Schreibvorgänge.
Wenn man den optimalen Durchsatz erreichen möchte, dann muss man selbst (*) puffern und eine Puffergrösse von ~ 2 KB bereithalten.
Den Rest erledigt der Cache von Windows.
*) Es gibt schon gepufferte Streamklassen im Internet.
TBufferedstream AND delphi