Lesen Sie große Textdateien in C#: Streaming -Optimierungstechnologie
Bei der Verarbeitung großer Textdateien kann das Laden von Dateien in die Anwendung ein Engpass werden. In diesem Artikel wird erläutert, wie der Durchfluss und verschiedene Optimierungstechnologien verwendet werden, um die Effizienz dieses Prozesses zu verbessern.
optimierte Strategie:
<.> 1. StreamReader Recovery:
StreamReader mit einer gepufferten Stream -Verpackung kann die Lesevorgänge erheblich beschleunigen. Im folgenden Codebeispiel wird BufferedStream als Zwischenprodukt zwischen FileStream und StreamReader verwendet:
Diese Methode reduziert die Anzahl der Betriebssystemaufrufe, da sich die Daten langsam im Puffer befinden.<.> 2. Der Produzent/Verbrauchermodus mit TPL -Datenflow:
<code class="language-csharp">using (FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (BufferedStream bs = new BufferedStream(fs)) using (StreamReader sr = new StreamReader(bs)) { string line; while ((line = sr.ReadLine()) != null) { //在此处处理行 } }</code>
Für maximale Dateien kann das Hersteller/Verbrauchermodell von TPL DataFlow die Leistung weiter verbessern. In diesem Modus wird ein separater Thread zum Lesen von Textzeilen verwendet, während der andere Thread zum Umgang mit diesen Zeilen verwendet wird. Durch die Verwendung von Parallelität kann diese Methode die Skalierbarkeit erheblich verbessern.
<.> 3.. Verwenden Sie die Flusslänge, um StringBuilder zu initialisieren:
Wenn die Länge des bekannten Flusses unter Verwendung der entsprechenden Kapazität zur Initialisierung des StringBuilders initialisiert werden kann, um den Größeneinstellungsvorgang während der Zugabe zu vermeiden. Dies kann Speicherzuweisung sparen und die Leistung verbessern.
Andere Vorsichtsmaßnahmen:
Hintergrundarbeitsthreads, um die UI -Antwort sicherzustellen:
Ausführen von Lesevorgängen im Hintergrundarbeitsthread kann sicherstellen, dass der Haupt -UI -Thread beibehalten wird.Behandlungslinienzeichen: Wenn Sie den Inhalt der Datei verarbeiten, betrachten Sie die Existenz des Terminalsanterminals der Unix- oder DOS -Zeile.
Das obige ist der detaillierte Inhalt vonWie können Stream-Optimierungstechniken das Lesen großer Textdateien in C# verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!