我正在将一个字符串列表输出到常规文本文件中。 这些文件最终可能会非常大。换句话说,我最终可能会将大量字符串列表刷新到磁盘中。
我假设使用
来做性能是明智的 File.WriteAllText("myFile.txt", string.Join(Environment.NewLine, myListOfStrings))
结束
File.WriteAllLines("myFile.txt", myListOfStrings)
,
因为我将所有IO操作总结为一个。
我是对的/这会影响性能吗?
修改:效果分析
我几乎没有使用VS性能分析工具,但是从我得到的输出(我选择了Instrumentation over CPU bound,因为它对我来说更有说服力来衡量它在函数F1,F2中花费了多少时间。 。) - 对于一个120.000行的txt文件,WriteAllText通过减少7%的时间来完成表现更好。
另一方面,简单地为秒表的开始/停止添加控制台输出显示WriteAllLines在0.20 ...秒内完成,而WriteAllText在0.30 ...
答案 0 :(得分:1)
使用WriteAllLines
的好处是,在将完整的字符串写入磁盘之前,您不需要将完整的字符串保留在内存中。您也不需要在内存中保留完整的物化集合,但可以提供IEnumerable。