溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ORM for Net主流框架匯總與效率測試

發(fā)布時間:2020-06-23 16:00:53 來源:網(wǎng)絡(luò) 閱讀:473 作者:黃欣怡 欄目:大數(shù)據(jù)

框架已經(jīng)被越來越多的人所關(guān)注與使用了,今天我們就來研究一下net方面的幾個主流ORM框架,以及它們的效率測試(可能會有遺漏歡迎大家討論)。


ORM框架:Object/Relation Mapping(對象/關(guān)系 映射)的縮寫,易于理解的模型化數(shù)據(jù)的方法。簡單的說就是把數(shù)據(jù)庫的關(guān)系型數(shù)據(jù)類型轉(zhuǎn)換為用對象型程序控制的框架類型。


今天研究的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)、效率測試環(huán)境介紹。

2)、測試框架簡介。

3)、測試CRUD結(jié)果表格對比。

4)、測試CRUD排行。

5)、框架優(yōu)缺點分析。


正文:

1)、效率測試環(huán)境介紹。

采用netframework 4.0 Web網(wǎng)站項目,使用Stopwatch進(jìn)行執(zhí)行時間統(tǒng)計,使用Parallel對象實現(xiàn)并發(fā)操作。為了測試的接近實際型,我執(zhí)行的時候關(guān)掉了電腦上的所有程序,除測試程序,10次相同環(huán)境下重復(fù)測試10萬條數(shù)據(jù)量的平均值。

測試數(shù)據(jù)庫T-Sql


ORM for Net主流框架匯總與效率測試測試數(shù)據(jù)庫與表


2)、測試框架簡介。

Stopwatch watch = new Stopwatch();

watch.Start();

Parallel.For(0, 100000, i =>

{

    // ...業(yè)務(wù)

});

watch.Stop();

Response.Write(watch.ElapsedMilliseconds);

3)、測試CRUD結(jié)果表格對比。

添加功能測試表:

操作

添加

數(shù)據(jù)量(萬條)

10w

測試次數(shù)

10

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發(fā)執(zhí)行時間(ms

36,731

113,793

36,321

56,342

未測

非并發(fā)執(zhí)行時間(ms

115,875

223,768

100,719

124,844

1,247,572




修改功能測試表:

操作

修改

數(shù)據(jù)量(萬條)

10w

測試次數(shù)

10

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發(fā)執(zhí)行時間(ms)

25,985

140,779

33,366

36,916

未測

非并發(fā)執(zhí)行時間(ms)

98,868

279,851

102,875

102,821

1,226,506



查詢功能測試表:

操作

查詢

數(shù)據(jù)量(萬條)

10w

測試次數(shù)

10

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發(fā)執(zhí)行時間(ms)

19,776

94,265

39,854

26,784

未測

非并發(fā)執(zhí)行時間(ms)

54,515

157,676

37,339

67,344

1,438,398



刪除功能測試表:

操作

刪除

數(shù)據(jù)量(萬條)

10w

測試次數(shù)

10

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發(fā)執(zhí)行時間(ms)

33,802

101,516

31,964

28,223

未測

非并發(fā)執(zhí)行時間(ms)

102,107

211,105

88,420

97,846

1,230,465



4)、CRUD測試排行。

以下為10萬條數(shù)據(jù)的查詢排行,單位為毫秒(ms)。

========================================================

增加排行:

Top1iBate 并發(fā):36,321ms 非并發(fā):100,719ms

Top2:GentleNet 并發(fā):36,731ms 非并發(fā):115,875ms

Top3SubSonic 并發(fā):56,342ms 非并發(fā):124,844

ms

Top4NBear 并發(fā):113,793ms 非并發(fā):223,768

ms

Top5NHibernate 非并發(fā):1,247,572

ms


========================================================

修改排行:

Top1GentleNet 并發(fā):25,985ms 非并發(fā):98,868ms

Top2iBate 并發(fā):33,366ms 非并發(fā):102,875

ms

Top3SubSonic 并發(fā):36,916ms 非并發(fā):124,844

ms

Top4NBear 并發(fā):113,793ms 非并發(fā):102,821

ms

Top5NHibernate 非并發(fā):279,851

ms


========================================================

查詢排行:

Top1GentleNet 并發(fā):19,776ms 非并發(fā):54,515ms

Top2SubSonic 并發(fā):26,784ms 非并發(fā):67,344ms

Top3iBate 并發(fā):39,854ms 非并發(fā):37,339(非并發(fā)下查詢效率最高)ms

Top4NBear 并發(fā):94,265ms 非并發(fā):157,676ms



Top5NHibernate 非并發(fā):1,438,398

ms


========================================================

刪除排行:

Top1SubSonic 并發(fā):28,223ms 非并發(fā):97,846ms

Top2iBate 并發(fā):31,964ms 非并發(fā):88,420ms

Top3GentleNet 并發(fā):33,802ms 非并發(fā):102,107ms

Top4NBear 并發(fā):101,516ms 非并發(fā):211,105ms

Top5NHibernate 非并發(fā):1,230,465ms

========================================================



5)、框架優(yōu)缺點分析。

Gentle.Net

優(yōu)點:支持t-sql,語法簡單方便,效率高。

缺點:依賴代碼生成器生成每個實體類。


iBatis

優(yōu)點效率比較高,尤其是非并發(fā)下效果很高,比較穩(wěn)定。

缺點:配置文件比較多,t-sql在每個配置文件里面寫,條件查詢比較麻煩。


SubSonic

優(yōu)點:刪除和查詢效果很好,添加比較慢。

缺點:語法比較接近Linq,語法自成一派比較不滿意。


NHibernate

優(yōu)點:覆蓋功能比較全,穩(wěn)定性好,集成性能好,使用比較廣泛,支持t-sqlhql語法。

缺點:配置比較多,比較麻煩,效率比較慢。


NBear

優(yōu)點:配置最簡單。

缺點:操作語法不成熟,不支持t-sql,使用起來不方便,已經(jīng)很久沒有更新了。


ps:大家根據(jù)測試的結(jié)果自行選擇合適的框架。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI