2015-10-08 53 views
0

我輸出一個字符串列表到一個普通的文本文件。 這些文件可能最終會相當大。換句話說,我最終可能會將大量的字符串清空到磁盤中。是否使用File.WriteAllText推薦File.WriteAllLines來處理大文件?

我假定這將是明智的性能使用

File.WriteAllText("myFile.txt", string.Join(Environment.NewLine, myListOfStrings))

做了

File.WriteAllLines("myFile.txt", myListOfStrings)

,因爲我將總結所有IO操作之一。

我說得對嗎/這會真的影響性能嗎?


編輯:性能分析

我幾乎沒有過與VS性能分析工具發揮,但是從我得到的輸出(我選擇儀表過約束,因爲它聽起來更確鑿給我的CPU測量它在函數F1,F2 ...中花費了多少時間) - 對於具有120.000行的txt文件,WriteAllText通過將完成時間減少約7%而更好地執行。

在另一方面,簡單地增加控制檯輸出爲秒錶的開始/停止節目WriteAllLines結束在0.20 ...秒,而在WriteAllText 0.30 ...

+1

配置文件並找出它。 –

+0

@DanielMann:只對發佈版本配置(而不是調試)進行分析工作? – Veverke

+1

如果文件相當大,你應該擔心你的內存在'string.Join(Environment.NewLine,myListOfStrings)'。所以,即使「WriteAllText」效率稍高一點,也可能是更糟的做法。 –

回答

1

使用WriteAllLines的好處是,你不需要在寫入磁盤之前將完整的字符串保存在內存中。您也不需要在內存中保存完整的物化集合,但可以提供IEnumerable。

+0

Tim Schmelter說過的話。謝謝。 – Veverke

相關問題