框架已經(jīng)被越來越多的人所關(guān)注與使用了,今天我們就來研究一下net方面的幾個(gè)主流ORM框架,以及它們的效率測(cè)試(可能會(huì)有遺漏歡迎大家討論)。
網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)服務(wù)團(tuán)隊(duì)是一支充滿著熱情的團(tuán)隊(duì),執(zhí)著、敏銳、追求更好,是創(chuàng)新互聯(lián)的標(biāo)準(zhǔn)與要求,同時(shí)竭誠為客戶提供服務(wù)是我們的理念。創(chuàng)新互聯(lián)把每個(gè)網(wǎng)站當(dāng)做一個(gè)產(chǎn)品來開發(fā),精雕細(xì)琢,追求一名工匠心中的細(xì)致,我們更用心!
ORM框架:Object/Relation Mapping(對(duì)象/關(guān)系 映射)的縮寫,易于理解的模型化數(shù)據(jù)的方法。簡單的說就是把數(shù)據(jù)庫的關(guān)系型數(shù)據(jù)類型轉(zhuǎn)換為用對(duì)象型程序控制的框架類型。
今天研究的orm框架如下:
1.NHibernate(使用與介紹:http://www.cnblogs.com/stone_w/archive/2011/09/15/2177830.html)
2.iBatis(使用與介紹:http://www.cnblogs.com/stone_w/archive/2011/09/26/2192155.html)
3.NBear(使用與介紹:http://www.cnblogs.com/stone_w/archive/2011/09/21/2184376.html)
4.SubSonic(使用與介紹:http://www.cnblogs.com/stone_w/archive/2011/09/22/2185152.html)
5.GentleNet(使用與介紹:http://www.cnblogs.com/stone_w/archive/2011/09/16/2179157.html)
目錄:
1)、效率測(cè)試環(huán)境介紹。
2)、測(cè)試框架簡介。
3)、測(cè)試CRUD結(jié)果表格對(duì)比。
4)、測(cè)試CRUD排行。
5)、框架優(yōu)缺點(diǎn)分析。
正文:
1)、效率測(cè)試環(huán)境介紹。
采用netframework 4.0 Web網(wǎng)站項(xiàng)目,使用Stopwatch進(jìn)行執(zhí)行時(shí)間統(tǒng)計(jì),使用Parallel對(duì)象實(shí)現(xiàn)并發(fā)操作。為了測(cè)試的接近實(shí)際型,我執(zhí)行的時(shí)候關(guān)掉了電腦上的所有程序,除測(cè)試程序,10次相同環(huán)境下重復(fù)測(cè)試10萬條數(shù)據(jù)量的平均值。
測(cè)試數(shù)據(jù)庫T-Sql:
測(cè)試數(shù)據(jù)庫與表
2)、測(cè)試框架簡介。
Stopwatch watch = new Stopwatch();
watch.Start();
Parallel.For(0, 100000, i =>
{
// ...業(yè)務(wù)
});
watch.Stop();
Response.Write(watch.ElapsedMilliseconds);
3)、測(cè)試CRUD結(jié)果表格對(duì)比。
添加功能測(cè)試表:
操作 | 添加 | ||||
數(shù)據(jù)量(萬條) | 10w | ||||
測(cè)試次數(shù) | 10次 | ||||
框架名稱 | GentleNet | NBear | iBate | SubSonic | NHibernate |
并發(fā)執(zhí)行時(shí)間(ms) | 36,731 | 113,793 | 36,321 | 56,342 | 未測(cè) |
非并發(fā)執(zhí)行時(shí)間(ms) | 115,875 | 223,768 | 100,719 | 124,844 | 1,247,572 |
修改功能測(cè)試表:
操作 | 修改 | ||||
數(shù)據(jù)量(萬條) | 10w | ||||
測(cè)試次數(shù) | 10次 | ||||
框架名稱 | GentleNet | NBear | iBate | SubSonic | NHibernate |
并發(fā)執(zhí)行時(shí)間(ms) | 25,985 | 140,779 | 33,366 | 36,916 | 未測(cè) |
非并發(fā)執(zhí)行時(shí)間(ms) | 98,868 | 279,851 | 102,875 | 102,821 | 1,226,506 |
查詢功能測(cè)試表:
操作 | 查詢 | ||||
數(shù)據(jù)量(萬條) | 10w | ||||
測(cè)試次數(shù) | 10次 | ||||
框架名稱 | GentleNet | NBear | iBate | SubSonic | NHibernate |
并發(fā)執(zhí)行時(shí)間(ms) | 19,776 | 94,265 | 39,854 | 26,784 | 未測(cè) |
非并發(fā)執(zhí)行時(shí)間(ms) | 54,515 | 157,676 | 37,339 | 67,344 | 1,438,398 |
刪除功能測(cè)試表:
操作 | 刪除 | ||||
數(shù)據(jù)量(萬條) | 10w | ||||
測(cè)試次數(shù) | 10次 | ||||
框架名稱 | GentleNet | NBear | iBate | SubSonic | NHibernate |
并發(fā)執(zhí)行時(shí)間(ms) | 33,802 | 101,516 | 31,964 | 28,223 | 未測(cè) |
非并發(fā)執(zhí)行時(shí)間(ms) | 102,107 | 211,105 | 88,420 | 97,846 | 1,230,465 |
4)、CRUD測(cè)試排行。
以下為10萬條數(shù)據(jù)的查詢排行,單位為毫秒(ms)。
========================================================
增加排行:
Top1:iBate 并發(fā):36,321ms 非并發(fā):100,719ms
Top2:GentleNet 并發(fā):36,731ms 非并發(fā):115,875ms
Top3:SubSonic 并發(fā):56,342ms 非并發(fā):124,844
msTop4:NBear 并發(fā):113,793ms 非并發(fā):223,768
msTop5:NHibernate 非并發(fā):1,247,572
ms========================================================
修改排行:
Top1:GentleNet 并發(fā):25,985ms 非并發(fā):98,868ms
Top2:iBate 并發(fā):33,366ms 非并發(fā):102,875
msTop3:SubSonic 并發(fā):36,916ms 非并發(fā):124,844
msTop4:NBear 并發(fā):113,793ms 非并發(fā):102,821
msTop5:NHibernate 非并發(fā):279,851
ms========================================================
查詢排行:
Top1:GentleNet 并發(fā):19,776ms 非并發(fā):54,515ms
Top2:SubSonic 并發(fā):26,784ms 非并發(fā):67,344ms
Top3:iBate 并發(fā):39,854ms 非并發(fā):37,339(非并發(fā)下查詢效率最高)ms
Top4:NBear 并發(fā):94,265ms 非并發(fā):157,676ms
Top5:NHibernate 非并發(fā):1,438,398
ms========================================================
刪除排行:
Top1:SubSonic 并發(fā):28,223ms 非并發(fā):97,846ms
Top2:iBate 并發(fā):31,964ms 非并發(fā):88,420ms
Top3:GentleNet 并發(fā):33,802ms 非并發(fā):102,107ms
Top4:NBear 并發(fā):101,516ms 非并發(fā):211,105ms
Top5:NHibernate 非并發(fā):1,230,465ms
========================================================
5)、框架優(yōu)缺點(diǎn)分析。
Gentle.Net
優(yōu)點(diǎn):支持t-sql,語法簡單方便,效率高。
缺點(diǎn):依賴代碼生成器生成每個(gè)實(shí)體類。
iBatis
優(yōu)點(diǎn): 效率比較高,尤其是非并發(fā)下效果很高,比較穩(wěn)定。
缺點(diǎn):配置文件比較多,t-sql在每個(gè)配置文件里面寫,條件查詢比較麻煩。
SubSonic
優(yōu)點(diǎn):刪除和查詢效果很好,添加比較慢。
缺點(diǎn):語法比較接近Linq,語法自成一派比較不滿意。
NHibernate
優(yōu)點(diǎn):覆蓋功能比較全,穩(wěn)定性好,集成性能好,使用比較廣泛,支持t-sql和hql語法。
缺點(diǎn):配置比較多,比較麻煩,效率比較慢。
NBear
優(yōu)點(diǎn):配置最簡單。
缺點(diǎn):操作語法不成熟,不支持t-sql,使用起來不方便,已經(jīng)很久沒有更新了。
ps:大家根據(jù)測(cè)試的結(jié)果自行選擇合適的框架。
分享文章:ORMforNet主流框架匯總與效率測(cè)試
網(wǎng)址分享:http://m.newbst.com/article48/pjdeep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、建站公司、全網(wǎng)營銷推廣、網(wǎng)站設(shè)計(jì)公司、微信小程序、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)