Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 环境足迹5基准_C#_Entity Framework_Ado.net_Ibatis_Dapper - Fatal编程技术网

C# 环境足迹5基准

C# 环境足迹5基准,c#,entity-framework,ado.net,ibatis,dapper,C#,Entity Framework,Ado.net,Ibatis,Dapper,我正在遵循那个整洁社区创建的原则 目前,在运行测试10000次后,我得到以下结果: EF 5=21595毫秒 ADO.NET=52183毫秒 短小精悍=52499毫秒 iBatis=83138毫秒 我需要一些东西来帮助我理解为什么EF更快。 我做错了什么? 我正在使用的代码已打开 谢谢 首先,EF确实加快了速度:他们投入了大量时间来提高性能-根据我的大多数衡量标准,它仍然有明显的开销。请考虑:EF位于ADO.NET之上。如果EF报告的结果比ADO.NET快得多,那么(我想你已经怀疑了):你没

我正在遵循那个整洁社区创建的原则

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

  • EF 5=21595毫秒
  • ADO.NET=52183毫秒
  • 短小精悍=52499毫秒
  • iBatis=83138毫秒
我需要一些东西来帮助我理解为什么EF更快。 我做错了什么?

我正在使用的代码已打开


谢谢

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

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

然而,不相关的:我必须说:我很高兴您的结果显示dapper的性能在原始ADO.NET性能的0.6%以内。这基本上正是我们使用dapper的目的:原始ADO.NET的完整性能,但只是消除了编码的痛苦