代码之家  ›  专栏  ›  技术社区  ›  Egor Pavlikhin

调试过程中NHibernate非常慢

  •  3
  • Egor Pavlikhin  · 技术社区  · 16 年前

    是否有人在调试时遇到过这样一个问题:nhibernate在Visual Studio中速度非常慢,但在单独运行时行为正常?日志记录被禁用,并且所损失的时间似乎是在执行实际查询时,nhprofiler显示查询执行得非常快(我认为是在SQL方面),但每个包含10个查询的会话大约需要4秒。我正在使用SQL Express服务器。正如我所说,即使我打开了完整的日志记录并在没有Visual Studio的情况下运行我的应用程序,速度也会快很多。

    更新。 经过数小时的工作,我可以通过简单地将项目类型从Windows应用程序切换到控制台应用程序来解决这个问题(尽管实际上它是一个Windows服务,但它以前总是与Windows应用程序项目类型一起工作)。在调试模式下,使NHibernate停止可能有什么不同?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Alex McMahon    14 年前

    我的WinForms应用程序也有同样的问题。我试过你把它改成一个控制台应用程序的建议,但效果很好!不幸的是,不能接受控制台窗口。

    然后我找到了我认为的潜在罪魁祸首。show sql()(或show_sql=true)。关闭此选项使应用程序的运行速度与从Visual Studio外部运行时一样快。我认为这是因为当从vs运行时,它将控制台输出重定向到输出窗口,这一切都需要时间。在Visual Studio外部运行时,没有控制台输出可写入,因此速度更快。

    希望对你也有用