九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ADO.net,Linq to SQL和Entity Framework性能實(shí)測分析

轉(zhuǎn)載自:http://blog.csdn.net/hxwangcong/article/details/5598544

ADO.net,Linq to SQL和Entity Framework性能實(shí)測分析

  最近文檔寫了不少,導(dǎo)致Word和Excel的使用能力飛一般成長??紤]到項(xiàng)目中讀寫數(shù)據(jù)庫的方法存在效率不高,以致影響用戶體驗(yàn)的問題,決定測試一下Microsoft新推行的Linq和EF能不能在效率上有所改進(jìn)。

  測試環(huán)境當(dāng)然就是我這臺筆記本了,受限與硬盤轉(zhuǎn)速,運(yùn)行起來一定是不如臺式機(jī)的,但至少保證了三個方案相同的軟硬件環(huán)境:Windows Server 2008,Visual Studio 2008,MS SQL Server 2008,清一色的最新產(chǎn)品。

  測試分成六個階段,數(shù)據(jù)量分別為10,10,100,1千,1萬,10萬逐級增長,分別測試了讀取、寫入、更改、刪除四個基本的操作的耗時,結(jié)果如下(時間單位:秒):

第一次讀寫10條數(shù)據(jù)

 

 

 

第二次讀寫10條數(shù)據(jù)

操作100條數(shù)據(jù)

操作1000條數(shù)據(jù)

操作10000條數(shù)據(jù)

操作100000條數(shù)據(jù)

【測試總結(jié)】

  第一階段測試結(jié)果非常出人意料,ADO.net和LINQ to SQL操作數(shù)據(jù)的時間都控制在0.5秒以內(nèi),非常的迅速,但是Entity Framework在添加這步表現(xiàn)非常差,由于這五步是連續(xù)測試,其中添加數(shù)據(jù)是第一步操作,而EF在在進(jìn)行第一步操作的時候足足延遲了3秒鐘!這3秒鐘到底EF在做什么?

  從第二階段開始,性能的優(yōu)劣就非常明顯的展現(xiàn)在我們面前,第二階段到第六階段,不論操作數(shù)據(jù)量的大小,圖中的耗時比例幾乎是相同的。Entity Framework無可爭議的以極高的效率在三種方案中脫穎而出,而LINQ to SQL的龜速修改和刪除操作消耗的時間幾乎是EF的10倍,ADO.net在添加數(shù)據(jù)上的表現(xiàn)實(shí)在不盡如人意,這也跟我們項(xiàng)目底層寫法有關(guān)。

  從上面的測試結(jié)果可以看出,除去EF在初次操作數(shù)據(jù)是延遲的3秒鐘(初步認(rèn)為是初始化時間),EF的平均效率是LINQ to SQL的6倍,是當(dāng)前項(xiàng)目機(jī)制的4倍,這是非??捎^的效率提升,不難理解為什么微軟幾乎放棄了LINQ to SQL,全力支持EF了。

【深入分析為什么第一次執(zhí)行Entity Framework非常慢的原因】(轉(zhuǎn))

第一次創(chuàng)建ObjectContext并查詢數(shù)據(jù)時耗費(fèi)了大量的時間,原因是什么?有沒有什么優(yōu)化的方法?本文將給出一個合理的解釋。

下面這個餅狀圖給出了第一次創(chuàng)建ObjectContext并用其訪問數(shù)據(jù)庫時各種操作所占的時間比

從中可以看出僅僅View Generation一個操作就占用了56%的時間,不過令人欣慰的是,這個操作只出現(xiàn)在第一次查詢的時候,之后生成好的View會被緩存起來供以后使用。一個View.cs文件的樣本如下:

 

我們可以使用EDMGen2.exe來自己生成View.cs,然后把它加入到工程中編譯,這樣會大大縮減View Generation操作所占的時間比。根據(jù)ADO.NET TEAM 的測試,自己編譯View大概會節(jié)省28%的時間。不過我在自己電腦上測試的結(jié)果沒有那么理想,大概是8%左右。


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
.NET Framework 各個版本的區(qū)別
EF框架
[ASP.NET MVC 小牛之路]06 - 使用 Entity Framework Code First
靈動思緒EF(Entity FrameWork)
ADO.NET Entity Framework
ADO.NET入門教程(一) 初識ADO.NET
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服