NHibernate与Entity Framework性能比较
对NHibernate与EF的性能做了简单的测试
测试环境:Win7 64bit, NHibernate 3.2, Entity Framework 4.0
结果如下:
1. 条件查询:NHibernate略优于EF Linq
2. 根据主键查找对象: HHibernate大大优于EF Linq,当使用eager loading获取关联对象时尤甚
3. 使用compiled(预编译)Linq可以大大提高EF的性能,特别当查询条件比较复杂的时候。
以下数据均为每秒钟可执行操作的次数(more is better)
1. 条件查询
Where 1 | Where 1 OrderBy | Where (1&2) Order By | Where (1 & (2 | 3)) Order By | |
Nhibernate | 373 | 359 | 357 | 356 |
EF Linq | 349 | 303 | 295 | 268 |
EF Compiled Linq | 710 | 640 | 613 | 621 |
EF Query Builder | 741 | 682 | 656 | 672 |
EF Entity Sql | 741 | 697 | 666 | 687 |
2. 根据主键查找
Get Object By PK | Get Object By PK with Relationship | |
Nhibernate | 758 | 691 |
EF | 521 | 350 |