0

我认为 NHibernate 比 EF 快。但是这段代码告诉我,EF 在 1s 左右,但 Nhibernate 在 2~4s 左右。查询有什么问题吗?

要点链接:https ://gist.github.com/d271f4ca0276cca7d481

它是一个表,没有链接,与其他人没有关系,但只有 300k 行数据。

MySQL.EF5,NHibernate 3.3。

4

2 回答 2

1

我看不出测试中使用的查询有什么问题。测试的问题是它测量了一个批量处理操作,这超出了 NHibernate 的目标用例。

此外,NHibernate 并没有将性能作为首要目标,因此不应仅根据该参数对其进行评估。也就是说,如果性能是您最重要的一个因素,那么您可能会更好地使用更简单的东西。

于 2013-01-19T09:34:37.900 回答
0

根据我对 NHibernate 的经验,问题是 ISessionFactory 需要最多的时间来创建。在那里进行所有映射,初始化缓存等等。

使用 NHibernate 进行查询的方式也不同于 EF。EF 编译“Linq”-Expression Tree 并基于使用的 Driver 构建 SQL 语句。

在 NHibernate 中,您自己用自己的语法编写查询。与 EF 相比,这速度较慢。

这就是我的经验。也许其他人可以进行更深入的研究。

于 2013-01-18T23:27:44.150 回答