1

我每天写很多日志(每天数百万个字符串,最多 1 Gb 的日志)。如果我设置时AutoFlush我会显着降低计算机速度或“损坏”硬盘(如果这很重要,则为 SaS 15000),我很感兴趣?每次写入新行时,HDD 会做一些昂贵的额外操作(如打开文件、修改关闭等)

很可能我只是不应该使用AutoFlush,但有时我想用它来解决其他问题。

4

1 回答 1

3

我不确定谁对您的问题投了反对票或为什么(但我可以猜到)。

根据http://msdn.microsoft.com/en-us/library/system.io.streamwriter.autoflush.aspx,使用AutoFlush肯定会减慢你的代码。您需要进行一些测试以确定它会减慢多少,以及获取日志消息是否值得付出代价。

如果我是你,我会认真审查日志记录——你真的每天都需要那么多数据吗?我的猜测是,如果您可以消除大部分(如果不是全部),您的程序的性能将会显着提高。

如果由于某种原因您无法消除日志记录,请查看一些日志记录库,例如 log4net 或 Enterprise Logging。请参阅如何登录 c#?了解更多信息。这些库是由那些花费太多时间的人编写并进行了彻底的性能测试的;与本地代码相比,该库不太可能包含错误或瓶颈。

于 2012-07-25T20:51:16.637 回答