EF 5 基准测试

本文关键字:基准测试 EF | 更新日期: 2023-09-27 18:33:09

我正在关注Dapper社区创建的性能测试。

目前,我在运行测试 10000 次后得到以下结果:

  • EF 5 = 21595 ms
  • ADO.NET = 52183 ms
  • Dapper = 52499 ms
  • iBatis = 83138 ms

我需要一些东西来帮助我理解为什么 EF 更快。我做错了什么?

我正在使用的代码在 Github 上

谢谢!!!

EF 5 基准测试

首先,EF 确实变得更快:他们投入了大量时间来提高性能 - 根据我的大多数措施,它仍然有明显的开销。考虑一下:EF 位于 ADO.NET 之上。如果 EF 报告的结果明显于 ADO.NET,那么(我想你已经怀疑这一点(:你没有衡量你认为你正在测量的东西。

怀疑这里的关键问题是您正在对同一数据上下文执行所有操作。这意味着您现在可能只是强调身份管理器和缓存。我不能直接运行您的代码(因为它使用 Oracle 等(,但查看执行的实际查询会很有趣。在实际使用中,每个数据上下文都具有有限的工作生存单元。在同一数据上下文上执行 10,000 个操作是非常罕见的。更典型的是少数操作。

但是,无关:我不得不说:我对你的结果感到非常满意,显示dapper在原始 ADO.NET 性能的0.6%以内。这基本上正是我们使用dapper所追求的:原始 ADO.NET 的全部性能,但只是消除了编码的痛苦。