有没有人偶然发现在调试时NHibernate在Visual Studio中速度极慢的问题,但在单独运行时表现正常?日志记录被禁用,时间丢失似乎是在执行实际查询时,NHProfiler显示查询执行得非常快(我假设在SQL端),但每个会话有10个查询大约需要4秒。我正在使用SQL Express Server。正如我所说,即使我打开完整日志记录并在没有Visual Studio的情况下运行我的应用程序,它也要快得多。
更新。经过几个小时的工作,我可以通过简单地将项目类型从Windows应用程序切换到控制台应用程序来修复它(虽然实际上它是一个Windows服务,但它总是以前使用Windows应用程序项目类型)。在调试模式下让NHibernate停止会有什么不同?
答案 0 :(得分:3)
我的WinForms应用程序遇到了同样的问题。我尝试过将其更改为控制台应用程序的建议,它确实有效!不幸的是,控制台窗口是不可接受的。
然后我发现了我认为的根本罪魁祸首。 ShowSql()(或show_sql = true)。关闭它使应用程序与从Visual Studio外部运行时一样快。我假设这是因为从VS运行时它将控制台输出重定向到输出窗口,所有这些都需要时间。在Visual Studio外部运行时,没有可写入的控制台输出,因此速度更快。
希望对你有用