EF5 Edmx / Code First vs EF6 Edmx / Code First

时间:2014-04-06 19:47:27

标签: c# performance entity-framework ef-code-first edmx

我正忙着将相当复杂的数据模型从EF5移到EF6,在过程中我注意到EF6(V6.1.0)存在一些严重的性能问题。无论是运行复杂的数据模型还是非常简单的模型,性能问题都是显而易见的。对包含5个表的简单数据模型执行以下测试,每个表包含5列,对包含200个记录的单个表进行排队。机器是i7 3.4Ghz 8GB RAM,SSD。这是.Net 4.5上的控制台应用程序。

// FIRST RUN
var sw = System.Diagnostics.Stopwatch.StartNew();
EFTestContext ctx = new EFTestContext();
var data = ctx.Table1.ToList(); // table with 200 records 
ctx.Dispose();
// SECOND RUN
Console.WriteLine(String.Format("Completed in {0}ms", sw.ElapsedMilliseconds));
sw.Restart();
ctx = new EFTestContext();
data = ctx.Table1.ToList();
ctx.Dispose();
Console.WriteLine(String.Format("Completed in {0}ms", sw.ElapsedMilliseconds));

结果如下:

  • EF5 Code First - 501ms / 2ms
  • EF5 EDMX - 226ms / 2ms
  • EF6 Code First - 1346ms / 3ms
  • EF6 EDMX - 1189ms / 3m

在EF6上生成视图确实可以略微提高性能,但仍然无法接近EF5启动和查询时间。

我一定错过了什么?微软宣布在EF6上进行性能增强(初始化和查询)?我知道在V6.0.0上报告了一些性能问题,但据报道在V6.1.0中已经解决了这些问题?请指教。

0 个答案:

没有答案