Membaca fail teks skala besar dalam C#: Teknologi Pengoptimuman Streaming
Apabila memproses fail teks besar, memuatkan fail ke aplikasi mungkin menjadi hambatan. Artikel ini membincangkan cara menggunakan aliran dan pelbagai teknologi pengoptimuman untuk meningkatkan kecekapan proses ini.
Strategi yang dioptimumkan:
3 StreamReader dengan pembungkusan BufferedStream dapat mempercepatkan operasi membaca dengan ketara. Dalam contoh kod berikut, BufferedStream digunakan sebagai pertengahan antara FileStream dan Streamreader:
Kaedah ini mengurangkan bilangan panggilan sistem operasi kerana data perlahan berada di penampan. <.> 2. Mod Pengeluar/Pengguna menggunakan TPL Dataflow:
Untuk fail maksimum, model pengeluar/pengguna Dataflow TPL dapat meningkatkan prestasi. Dalam mod ini, satu benang berasingan digunakan untuk membaca baris teks, manakala benang lain digunakan untuk mengendalikan baris ini. Dengan menggunakan paralelisme, kaedah ini dapat meningkatkan skalabiliti dengan ketara.
<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>
<.> 3. Gunakan panjang aliran untuk memulakan StringBuilder:
Jika panjang aliran yang diketahui dapat dimulakan menggunakan kapasiti yang sesuai untuk memulakan StringBuilder untuk mengelakkan operasi pelarasan saiz semasa penambahan. Ini dapat menjimatkan peruntukan memori dan meningkatkan prestasi.
Langkah berjaga -jaga lain:
Benang kerja latar belakang untuk memastikan tindak balas UI: menjalankan operasi membaca di benang kerja latar belakang dapat memastikan benang UI utama dikekalkan.
Watak -watak garis rawatan:
Apabila memproses kandungan fail, pertimbangkan kewujudan terminal terminal baris UNIX atau DOS.Dengan mencapai teknologi pengoptimuman ini, anda dapat meningkatkan prestasi aplikasi apabila memproses fail teks besar.
Atas ialah kandungan terperinci Bagaimanakah Teknik Pengoptimuman Strim Boleh Meningkatkan Membaca Fail Teks Besar dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!