好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Entity Framework性能测试

Entity Framework性能测试

Entity Framework性能测试

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

  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中(纯粹为了测试,看是不是更耗时),结果没什么变化。

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

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

微软跟我说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

 

 

 

 

 

 

标签:  Entity Framework

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于Entity Framework性能测试的详细内容...

  阅读:45次