即使使用持久配置优化,流畅的nHibernate Startup仍然很慢

时间:2011-04-17 10:58:39

标签: nhibernate sqlite windows-7 fluent-nhibernate

我们正试图减少Fluent nHibernate启动开销。

我们在这个主题上看到的所有文章(包括this one)都提出以下两点建议:

  1. 在第一次运行时保留配置并随后恢复,而不是重新创建它。
  2. 确保每个应用会话只创建一次ISessionFactory。
  3. 我们已经完成了这两项工作,并且在一个带有SQLite后端的双进程2.8Ghz 64位Windows 7系统上,创建会话工厂的Fluent nHibernate启动时间现在大约为550ms。目前只有四个实体,平均每个实体约有六个。

    这仍然太高了。我们希望将此时间缩短到20ms或更短(因此即使在慢速系统上也不会超过100ms)。我们有可能做到这一点吗?

    任何关于Fluent nHibernate在启动过程中所做的事情的深入了解也会有所帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用管理SessionFactory的WCF服务。由于这与您的应用程序无关,因此创建SessionFactory不会影响启动时间。当然,这确实会带来许多其他复杂性(延迟加载),但它确实解决了启动时间问题,因为当您启动应用程序时服务已经运行。