2

I am trying to understand which ORM is fast in performance?

  • NHibernate support Level 2 caching can we compare its performance with EF or Dapper?
  • EF Code First looks promising, but do we have inbuilt Level 2 cache support for EF?
  • Don't know much about Dapper ORM

Can someone please explains me pros and cons of this ORM and which one to choose for application performance boost.

4

1 回答 1

27

诸如 EF 或 NHibernate 之类的“大型”ORM 工具的问题在于(夸大其词?)99% 的开发人员对掌握如何使其工作感到不知所措;他们没有时间弄清楚如何让它发挥作用。更糟糕的是,要使这些工具正常运行通常归结为具备出色的 SQL/数据库设计和调优技能——这削弱了 ORM 的一个主要卖点。

在我看来,Level 2 缓存的问题被使用不当的 ORM 引入的其他性能损失所掩盖。似乎大多数使用 ORM 的项目都做得很差(同时设计数据库的工作也很差),这使得 2 级缓存有点没有意义。

因此,像 Massive 或 Dapper(后者由 Stack Overflow 使用)这样的微 ORM 工具非常有吸引力:

  • 与宏 ORM 不同,开发人员不需要花费几个月的时间来学习如何使用它们。每个微 ORM 不到一千行代码(犯罪!)。这可能需要多长时间才能理解?
  • 开发人员手头上的额外时间可以专门用于获得对 SQL 的更多掌握,他们需要学习这些知识才能更好地使用宏 ORM 或微 ORM。

需要明确的是,一个使用良好的宏 ORM 是一件很棒的事情。您是否拥有经验丰富的员工来确保其得到充分利用?

底线是这样的:如果您认为完整的 ORM 可以安全地隐藏数据库的复杂性,那么几乎可以肯定您会误会。如果给我一个选择,我会选择微型 ORM。不要误会我的意思,我认为 EF 和 NHIbernate 非常酷,我很乐意使用它们——我只是说你需要管理你的期望。

于 2012-09-12T02:23:54.297 回答