代码之家  ›  专栏  ›  技术社区  ›  Mauro Destro

NHibernate Configuration.AddDocument速度较慢

  •  1
  • Mauro Destro  · 技术社区  · 16 年前

    我正在一个小项目中测试fluent nhibernate。我有近10个类,当我调用BuildSessionFactory方法时,我得到了大约4500ms的缓慢响应(对于一个运行时间大约为40ms的项目来说太多了)

    我已经确定最长的方法调用是NHibernate程序集中的Configuration.AddDocument(xxx)。

    我没有设定 use_reflection_optimizer 所以我想问题出在我的配置中(我希望如此)。


    这就是我得到的。。

    2009-11-02 17:32:04171[7]信息NHibernate.Cfg.Environment- NHibernate 2.1.1.4000(2.1.1.4000)

    2009-11-02 17:32:04456[7]信息NHibernate.Cfg.Environment- 字节码提供程序名称:lcg

    2009-11-02 17:32:05234[7]信息NHibernate.dialogue.dialogue-使用 方言:NHibernate.dialogue.mssql2008方言

    2009-11-02 17:32:07240[7]信息NHibernate.Cfg.XmlHbmBinding.Binder -映射类:ProveSystems.Model.GestionInterruzioni.FuoriServicezio -&燃气轮机;富奥里塞维齐奥

    2009-11-02 17:32:07304[7]信息NHibernate.dialogue.dialogue-使用

    2009-11-02 17:32:07306[7]信息NHibernate.Cfg.XmlHbmBinding.Binder -映射类: ProveSystems.Model.GestionInterruzioni.RegistroUtenti-> 登记处

    所以有一秒钟的启动时间是可以的。。。但是第一个类在2秒内被映射。我只是想找出原因。。。。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Paco    16 年前

    构建会话工厂可能需要优化1或2秒,但对于必须在几分之一秒内启动的应用程序,不能使用NHibernate。 大多数使用NHibernate的应用程序作为webapplication或服务运行。对于这类应用程序,几秒钟多多少少无关紧要,但对于您的应用程序来说,恐怕手工构建sql是唯一足够快的东西。

        2
  •  1
  •   Sean Carpenter    16 年前

    NHibernate在创建 SessionFactory . 通过在启动期间进行映射和查询转换,不会在每次启动时支付成本 Session 是创建的。这就是为什么在使用NHibernate时建议创建 每个应用程序生命周期仅一次。

    正如@Paco所提到的,如果您需要快速启动,NHibernate可能不是这个应用程序的最佳选择。