博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORM for Net主流框架汇总与效率测试
阅读量:6246 次
发布时间:2019-06-22

本文共 3026 字,大约阅读时间需要 10 分钟。

框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论)。

 

ORM框架:Object/Relation Mapping(对象/关系 映射)的缩写,易于理解的模型化数据的方法。简单的说就是把数据库的关系型数据类型转换为用对象型程序控制的框架类型。

 

今天研究的orm框架如下:

1.(使用与介绍:)

2.(使用与介绍:)

3.(使用与介绍:)

4.(使用与介绍:)

5.(使用与介绍:)

 

 

目录:

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:大家根据测试的结果自行选择合适的框架。

转载地址:http://xxria.baihongyu.com/

你可能感兴趣的文章
搞定全渠道用户体验不是梦,看这家零售巨头怎样做
查看>>
小程序分销商城开发功能
查看>>
数据中心的区块链硬件可能不会解决任何问题
查看>>
中国电信发布低时延光网络白皮书
查看>>
富瑞特装的物联网“情结”
查看>>
从“拖拽”编程开始到一个合格的程序员
查看>>
再破魔力象限 山石网科入选Gartner IDPS MQ
查看>>
从传统归档到云存储归档的演变
查看>>
灯下黑:业务安全成政企行业重大隐患
查看>>
企业级移动市场一股不能忽视的新兴势力“钉钉+”
查看>>
从零学React Native之01创建第一个程序
查看>>
一个前端与后端分离的架构实例
查看>>
数据分析师的职位划分
查看>>
如何洞察大数据的关联性
查看>>
咕咚为何值1.5亿美元?
查看>>
18个你可能不相信是用CSS制作出来的东西
查看>>
Hadoop之父Doug Cutting眼中大数据技术的未来
查看>>
既然无法击败AI,何不投身其中:Elon Musk重返脑机接口业务
查看>>
如果,你的DNS提供商遭遇DDoS攻击该怎么办?
查看>>
Ubuntu环境下检查CPU的温度
查看>>