日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ORM for Net主流框架汇总与效率测试

發布時間:2023/11/29 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORM for Net主流框架汇总与效率测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

?

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

?

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

2)、測試框架簡介。

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

4)、測試CRUD排行。

5)、框架優缺點分析。

?

正文:

1)、效率測試環境介紹。

采用netframework?4.0?Web網站項目,使用Stopwatch進行執行時間統計,使用Parallel對象實現并發操作。為了測試的接近實際型,我執行的時候關掉了電腦上的所有程序,除測試程序,10次相同環境下重復測試10萬條數據量的平均值。

測試數據庫T-Sql:

?

create database OrmDB
go
use OrmDB
go
create table OrmTable
(
id int identity primary key,
infoName varchar(250) not null,
infoDesc text not null,
createTime datetime default Convert(varchar(50),getdate(),120)
)
go

2)、測試框架簡介。

?

Stopwatch watch = new Stopwatch();watch.Start();Parallel.For(0, 100000, i =>{// ...業務 });watch.Stop();Response.Write(watch.ElapsedMilliseconds);

?

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

添加功能測試表:

操作

添加

數據量(萬條)

10w

測試次數

10次

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發執行時間(ms)

36,731

113,793

36,321

56,342

未測

非并發執行時間(ms)

115,875

223,768

100,719

124,844

1,247,572

?

?

?

修改功能測試表:

操作

修改

數據量(萬條)

10w

測試次數

10次

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發執行時間(ms)

25,985

140,779

33,366

36,916

未測

非并發執行時間(ms)

98,868

279,851

102,875

102,821

1,226,506

?

?

查詢功能測試表:

操作

查詢

數據量(萬條)

10w

測試次數

10次

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發執行時間(ms)

19,776

94,265

39,854

26,784

未測

非并發執行時間(ms)

54,515

157,676

37,339

67,344

1,438,398

?

?

刪除功能測試表:

操作

刪除

數據量(萬條)

10w

測試次數

10次

框架名稱

GentleNet

NBear

iBate

SubSonic

NHibernate

并發執行時間(ms)

33,802

101,516

31,964

28,223

未測

非并發執行時間(ms)

102,107

211,105

88,420

97,846

1,230,465

?

?

4)、CRUD測試排行。

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

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

增加排行:

Top1:iBate?并發:36,321ms?非并發:100,719ms

Top2:GentleNet?并發:36,731ms?非并發:115,875ms

Top3:SubSonic?并發:56,342ms?非并發:124,844ms

Top4:NBear?并發:113,793ms?非并發:223,768ms

Top5:NHibernate?非并發:1,247,572ms

?

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

修改排行:

Top1:GentleNet?并發:25,985ms?非并發:98,868ms

Top2:iBate?并發:33,366ms?非并發:102,875ms

Top3:SubSonic?并發:36,916ms?非并發:124,844ms

Top4:NBear?并發:113,793ms?非并發:102,821ms

Top5:NHibernate?非并發:279,851ms

?

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

查詢排行:

Top1:GentleNet?并發:19,776ms?非并發:54,515ms

Top2:SubSonic?并發:26,784ms?非并發:67,344ms

Top3:iBate?并發:39,854ms?非并發:37,339(非并發下查詢效率最高)ms

Top4:NBear?并發:94,265ms?非并發:157,676ms

?

?

Top5:NHibernate?非并發:1,438,398ms

?

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

刪除排行:

Top1:SubSonic?并發:28,223ms?非并發:97,846ms

Top2:iBate?并發:31,964ms?非并發:88,420ms

Top3:GentleNet?并發:33,802ms?非并發:102,107ms

Top4:NBear?并發:101,516ms?非并發:211,105ms

Top5:NHibernate?非并發:1,230,465ms

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

?

?

5)、框架優缺點分析。

Gentle.Net

優點:支持t-sql,語法簡單方便,效率高。

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

?

iBatis

優點:?效率比較高,尤其是非并發下效果很高,比較穩定。

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

?

SubSonic

優點:刪除和查詢效果很好,添加比較慢。

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

?

NHibernate

優點:覆蓋功能比較全,穩定性好,集成性能好,使用比較廣泛,支持t-sql和hql語法。

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

?

NBear

優點:配置最簡單。

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

?

ps:大家根據測試的結果自行選擇合適的框架。

總結

以上是生活随笔為你收集整理的ORM for Net主流框架汇总与效率测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。