我正在对我们的ASP .NET应用程序进行性能分析,以尝试减少CPU使用率,并发现NHibernate和log4net存在一些奇怪的行为。
我们应用程序中超过50%的时间都花费在log4net的GetLogger和CreateRepository方法上,这些方法是从NHibernate的ExecuteReader中调用的。下面的截图是JetBrains dottrace热点分析,箭头指向一个调用方法到被调用方法。
下面的截图只是最慢函数的列表。正如您所看到的,NHybridDataReader构造函数调用了GetLogger,而且需要很长时间。
显然有些可疑的事情正在发生,我想在NHibernate中完全禁用log4net,因为我们使用其他日志记录功能。
我们的web.config没有任何关于log4net的条目,那么我该如何禁用它呢?没有生成任何日志文件,并且从方法名称来看,它实际上还没有记录任何内容,而只是试图找到应该写入内容的记录器。
非常困惑,请问有人可以帮忙吗?
我们应用程序中超过50%的时间都花费在log4net的GetLogger和CreateRepository方法上,这些方法是从NHibernate的ExecuteReader中调用的。下面的截图是JetBrains dottrace热点分析,箭头指向一个调用方法到被调用方法。
下面的截图只是最慢函数的列表。正如您所看到的,NHybridDataReader构造函数调用了GetLogger,而且需要很长时间。
显然有些可疑的事情正在发生,我想在NHibernate中完全禁用log4net,因为我们使用其他日志记录功能。
我们的web.config没有任何关于log4net的条目,那么我该如何禁用它呢?没有生成任何日志文件,并且从方法名称来看,它实际上还没有记录任何内容,而只是试图找到应该写入内容的记录器。
非常困惑,请问有人可以帮忙吗?