我輸出一個字符串列表到一個普通的文本文件。 這些文件可能最終會相當大。換句話說,我最終可能會將大量的字符串清空到磁盤中。是否使用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 ...
配置文件並找出它。 –
@DanielMann:只對發佈版本配置(而不是調試)進行分析工作? – Veverke
如果文件相當大,你應該擔心你的內存在'string.Join(Environment.NewLine,myListOfStrings)'。所以,即使「WriteAllText」效率稍高一點,也可能是更糟的做法。 –