全部好,
当我们考虑应用程序性能时,关于CPU周期的Logger.Write(logEnrty)成本是多少。
答案 0 :(得分:0)
我将在这里假设.NET / Visual Studio(名称为“Enterprise Library”)
应用程序性能比CPU周期更多。我不熟悉企业库记录器,但我认为记录中最大的不是CPU周期,而是磁盘IO。如果您的应用程序的磁盘IO很重,那么日志记录将比不受影响的情况更多地影响它。
我的建议:如果您想要/需要记录,请以一种从全球角度轻松禁用的方式添加它。而不是直接调用日志库,而是将它包装在您自己的类中,因此您可以通过使用类似DEBUG预处理指令的方式将其包装起来,从而轻松地在其中禁用它。并且,为了不占用您的主要执行线程,请在另一个线程上进行日志记录(不确定Enterprise Library是否默认执行此操作)
class MyLogger
{
public static void Log(string msg)
{
#if DEBUG
// Logging code here
#endif
}
}
上面的预处理指令是什么,它只会在设置Visual Studio DEBUG模式时构建包装代码。它不适用于RELEASE模式。
而且,如果你真的真的需要知道,抓住一个分析工具,并获得一些关于日志记录费用的实际数据。