Zitat:
Zumindest nannte ich eine tödlich-performante Variante
Tödlich ist das richtige Wort.
Versuche mal mit sowas mehrere GB an Daten zu kopieren.
Windows bevorzugt per Standard den FileCache, kopiert durch den FileCache und da der LeseCache auch nach dem vollständigen Schreiben erhalten bleibt, schmeißt es somit ALLE Programme aus dem
RAM in die PageFile und dein System wird sowas von ausgebremst, dass es richtig Spaß macht.
Bei FileStreams könntest DU wenigstens noch angeben, dass es sich um sequentielle Zugriffe handelt, damit Windows den Cache entsprechend optimieren könnte (wenn es das mal macht), aber da ist es einfacher die Kopierfunktionen der
WinAPI zu nutzen, wo dessen Entwickler sowas hoffentlich beachtet haben.
Ich habe gerade eben mal mit CreateFile und alten Dateizugriffsfunktionen geprüft, ob es einen Unterschied macht FILE_FLAG_NO_BUFFERING zu nutzen oder nicht.
Mit FILE_FLAG_NO_BUFFERING dauert das erste Kopieren einer 1 GB Datei von E nach E 30 Sekunden. Danach Wieder 30 Sekunden.
Ohne den NO_Buffering-Parameter erst 30 Sekunden und danach wenn überhaupt eine Sekunde.
Würde das System theoretisch sehr viel langsamer werden wenn ich 25 x 1 GB ohne den No-Buffering-Parameter kopiere?