Prestasi pembacaan fail C#: Perbandingan File.ReadLines() dan File.ReadAllLines()
Dalam ruang nama System.IO
C#, kedua-dua File.ReadLines()
dan File.ReadAllLines()
ialah kaedah biasa untuk membaca fail teks. Kedua-dua tatasusunan kembali rentetan, tetapi terdapat perbezaan yang ketara dari segi prestasi, terutamanya apabila bekerja dengan fail besar.
Fail.ReadLines()
File.ReadLines()
mengembalikan IEnumerable<string>
, menyokong pemuatan malas. Ini bermakna ia tidak membaca keseluruhan fail sekali gus, sebaliknya secara berulang, baris demi baris. Untuk fail besar, kelebihan pendekatan ini ialah ia mengurangkan overhed memori dan mengelakkan kesesakan prestasi yang mungkin terhasil daripada memuatkan keseluruhan fail ke dalam memori.
Fail.ReadAllLines()
File.ReadAllLines()
mula-mula akan membaca keseluruhan kandungan fail ke dalam memori dan kemudian mengembalikan tatasusunan rentetan. Kaedah ini lebih cekap untuk fail kecil atau apabila anda perlu mendapatkan keseluruhan kandungan fail dengan segera. Walau bagaimanapun, untuk fail yang besar, ia boleh memberi kesan yang ketara kepada prestasi dan mungkin membuang pengecualian kerana memori yang tidak mencukupi.
Perbandingan prestasi
Contoh kod berikut menunjukkan cara menggunakan kedua-dua kaedah:
<code class="language-csharp">string[] lines1 = File.ReadAllLines("C:\mytxt.txt"); foreach (var line in File.ReadLines("C:\mytxt.txt")) { // 处理每一行 }</code>
Ringkasan
Secara umumnya, File.ReadLines()
lebih sesuai untuk membaca fail besar atau hanya memproses sebahagian daripada fail. Dan File.ReadAllLines()
lebih sesuai untuk membaca fail kecil atau apabila anda perlu mendapatkan keseluruhan kandungan fail dengan segera. Kaedah yang hendak dipilih bergantung pada saiz fail dan senario aplikasi tertentu. Apabila memproses fail besar, mekanisme pemuatan malas File.ReadLines()
boleh meningkatkan prestasi dengan berkesan dan mengelakkan ralat limpahan memori.
Atas ialah kandungan terperinci File.ReadLines() lwn. File.ReadAllLines(): Kaedah Mana Yang Harus Anda Pilih untuk Prestasi Pembacaan Fail Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!