StreamWriter flush()调用性能影响

5Yr*_*DBA 2 .net c#

我们有一个Log类通过将日志条目写入日志文件StreamWriter.每次logItem()调用它时,都会传入一个条目并写入该文件.现在在WriteLine()方法调用之后,Flush()也调用了a.

你认为Flush()每次写作都需要吗?任何表现影响?

Chr*_* B. 6

显然,这会对性能产生影响.真正的问题是,是否存在足够的性能影响.而且(虽然我们无法从你的问题中真正说出)很可能没​​有.

这实际上取决于写入日志的行数,以及写入流的成本是多少(更快的文件系统会更便宜).要知道的唯一方法是在您希望它运行的条件下进行测试.

是否需要调用Flush()取决于您需要日志的最新版本.如果您担心在系统崩溃时丢失数据,则需要经常调用它(特别是如果日志将用于帮助调试崩溃).妥协可能是保持计数器并每4或5行左右冲洗日志.

简而言之:就目前而言,我会让每一行都清理数据.完成程序后,您可以分析代码以查看导致程序运行缓慢的原因.如果它是日志,那么担心让它更快.不是之前.