16

我一直在搜索比较 L2S 和 EF 的最新性能基准,但找不到任何使用已发布版本的 EF 测试调用存储过程的基准。因此,我进行了一些自己的测试,并发现了一些有趣的结果。

这些结果看起来对吗?我应该以不同的方式对其进行测试吗?

一个上下文实例,一个sproc调用:(死链接)

上下文的一个实例,同一个sproc的多次调用:(死链接)

上下文的多个实例,同一个sproc的多个调用:(死链接)

4

3 回答 3

8

我认为您应该以某种不同的方式对其进行测试,以区分启动成本与执行成本。尤其是实体框架,由于需要编译数据库视图(尽管您可以提前完成),因此需要大量的启动成本。同样,LINQ 有一个已编译查询的概念,如果多次执行查询,这将是合适的。

对于许多应用程序,查询执行成本将比启动成本更重要。对某些人来说,情况可能恰恰相反。由于它们的性能特征不同,我认为区分它们很重要。特别是,将启动成本平均为重复执行查询的平均成本是一种误导。

于 2008-11-03T14:37:21.590 回答
3

这看起来可以很好地衡量 LINQ to SQL 和实体框架之间的性能。

http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html

于 2009-08-27T22:09:12.333 回答
2

我做了几个测试 asp.net 页面,试图看看哪个表现更好。我的测试是:

删除10000条记录 插入10000条记录 编辑10000条记录 将10000条记录数据绑定到GridView并显示在页面上

我期待 LinqToSQL 更快,但执行上述 LinqToSQL 需要将近 2 分钟,而 LinqToEntities 需要不到 20 秒。

至少对于这个测试,LinqToEntities 似乎更快。我的结果似乎也与您的结果相匹配。

我没有尝试插入/编辑/删除/显示超过 1 个连接在一起的表。

我有兴趣了解更多……或者如果我的测试不是有效的测试类型,我会有兴趣看到一些真实的测试。

于 2008-12-16T02:02:32.187 回答