zoukankan      html  css  js  c++  java
  • Entity Framework性能测试

    Entity Framework性能测试

    早就听说EF的性能不咋地,没想到真的不咋地,而且还不是一般的不咋地。有图有真相,已经在项目中应用了EF的朋友慎入!

    1、.NET4.0,EF4.4

    复制代码
     1 public void ExecRealTimeRun(List<RealTimeStocks> realTimeData)
     2 {
     3     using (var context = new StockDataEntities())
     4     {
     5         context.Database.ExecuteSqlCommand("delete from RealTimeStocks");
     6 
     7         var now1 = DateTime.Now.TimeOfDay;
     8         Console.WriteLine(string.Format("{0}开始将数据Add到上下文中,数据量:{1}", now1, realTimeData.Count));
     9         foreach (var data in realTimeData)
    10         {
    11             context.RealTimeStocks.Add(data);
    12         }
    13 
    14         var now2 = DateTime.Now.TimeOfDay;
    15         Console.WriteLine(string.Format("{0}数据Added完毕,开始执行Insert操作,耗时{1}", now2, now2 - now1));
    16         try
    17         {
    18             context.SaveChanges();
    19         }
    20         catch (DbEntityValidationException dbEx)
    21         { }
    22         catch
    23         { }
    24 
    25         var now3 = DateTime.Now.TimeOfDay;
    26         Console.WriteLine(string.Format("{0}Insert完毕,耗时{1}", now3, now3 - now2));
    27     }
    28 }
    复制代码

    很简单,木有多余逻辑,结果:

    插入7K多数据,超过1分钟。反复测了几次,结果相差不大,假如将SaveChanges操作包裹在TransactionScope中(纯粹为了测试,看是不是更耗时),结果没什么变化。

    2、.NET4.5,EF4.4

    听说只要升级到.NET4.5,EF就会有性能上的提升,因为EF用到了.NET框架的某些类库,随着这些类库的升级,EF也提高了性能。so,干巴爹。结果:

    (这图可以不用贴,因为和上图没什么两样)

    3、.NET4.5,EF5.0

    微软跟我说5.0有67%的性能提升,我想这么大公司会乱说?于是卸载了4.4,安装了5.0(貌似NuGet里,会根据你的.NET版本安装相应版本的EF;但是你.NET升级后,EF不会跟着升级,也不能直接更新)。重新启动测试,结果:

    (这图可以不用贴,因为和上图没什么两样)

    结论:坐等10.0版本!

    转载请注明本文出处:http://www.cnblogs.com/newton/archive/2013/06/06/3120497.html

     

     

     

     

     

     

  • 相关阅读:
    改造二叉树
    汽车加油行驶问题
    [SHOI2012]回家的路
    子串
    P3558 [POI2013]BAJ-Bytecomputer
    HDU
    UVALive
    ZOJ
    HDU
    牛客小白月赛2 题解
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3120841.html
Copyright © 2011-2022 走看看