我每天都会写很多日志(每天有数百万个字符串,最多1 Gb的日志)。我感兴趣的是,当我设置AutoFlush时,是否会显著降低计算机速度或“损坏”硬盘(SaS 15000,如果这一点很重要)?HDD是否会在每次写入新行时执行一些昂贵的额外操作(如打开文件、修改和关闭等)
很可能我不应该使用AutoFlush,但有时我想用它来解决其他问题。
发布于 2012-07-26 04:51:17
我不确定是谁否决了你的问题,也不知道为什么(但我可以猜到)。
根据http://msdn.microsoft.com/en-us/library/system.io.streamwriter.autoflush.aspx的说法,使用AutoFlush肯定会减慢你的代码。您需要做一些测试,以确定它会减慢多少,以及获取日志消息是否值得。
如果我是你,我会认真检查日志--你真的每天都需要那么多数据吗?我的猜测是,如果你能消除大部分,如果不是全部的话,你的程序的性能将会显著提高。
如果由于某种原因不能消除日志记录,那么可以看看一些记录库,比如log4net或Enterprise logging。有关详细信息,请参阅How to do logging in c#?。这些库都是经过编写的,并由手头有太多时间的人进行了彻底的性能测试;与自行开发的代码相比,这些库不太可能包含错误或瓶颈。
https://stackoverflow.com/questions/11658117
复制相似问题