Microsoft
07.09.2021, 06:59 Uhr
File-IO: Verbesserungen in .NET 6
Wie Adam Sitnik, Senior Software Engineer .NET Libraries bei Microsoft, berichtet, ist die neue .NET-6-Klasse FileStream viel schneller und zuverlässiger als ihre Vorläufer. Ausserdem gibt es in .NET 6 jetzt ein API für gleichzeitige Lese- und Schreibvorgänge.
Microsoft hat in .NET 6 mehrere Verbesserungen an der File-IO-Bibliothek vorgenommen. Unter anderem die folgenden:
- Async file IO soll jetzt einigen Male schneller arbeiten und ohne Zuweisung auskommen.
- Async File IO unter Windows verwendet keine blockierenden APIs mehr.
- Neue zustandslose und Offset-basierte APIs für Thread-sicheres File IO wurden eingeführt. Einige Überladungen akzeptieren mehrere Puffer gleichzeitig, wodurch die Anzahl der Systemaufrufe reduziert werden kann.
- Es wurden neue APIs für die Angabe der Dateivorbelegungsgrösse eingeführt. Sowohl die Leistung als auch die Zuverlässigkeit können durch ihre Verwendung verbessert werden.
- FileStream.Position wird nicht mehr mit dem Betriebssystem synchronisiert, sondern nur noch im Speicher verfolgt.
- FileStream.Position wird nach Abschluss der asynchronen Operation aktualisiert, nicht mehr vor deren Start.
- Benutzer können den .NET-5-Kompatibilitätsmodus über eine Konfigurationsdatei oder eine Umgebungsvariable anfordern.
- Das FileStream-Verhalten für Randfälle wurde für Windows und Unix angeglichen.
Tiefergehende Informationen dazu finden Sie in diesem Blogbeitrag von Adam Sitnik in Microsofts Devblog.