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

测试数据库与表


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)。

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

增加排行:

Top1iBate 并发:36,321ms 非并发:100,719ms

Top2:GentleNet 并发:36,731ms 非并发:115,875ms

Top3SubSonic 并发:56,342ms 非并发:124,844 ms

Top4NBear 并发:113,793ms 非并发:223,768 ms

Top5NHibernate 非并发:1,247,572 ms

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

修改排行:

Top1GentleNet 并发:25,985ms 非并发:98,868ms

Top2iBate 并发:33,366ms 非并发:102,875 ms

Top3SubSonic 并发:36,916ms 非并发:124,844 ms

Top4NBear 并发:113,793ms 非并发:102,821 ms

Top5NHibernate 非并发:279,851 ms

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

查询排行:

Top1GentleNet 并发:19,776ms 非并发:54,515ms

Top2SubSonic 并发:26,784ms 非并发:67,344ms

Top3iBate 并发:39,854ms 非并发:37,339(非并发下查询效率最高)ms

Top4NBear 并发:94,265ms 非并发:157,676ms

Top5NHibernate 非并发:1,438,398 ms

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

删除排行:

Top1SubSonic 并发:28,223ms 非并发:97,846ms

Top2iBate 并发:31,964ms 非并发:88,420ms

Top3GentleNet 并发:33,802ms 非并发:102,107ms

Top4NBear 并发:101,516ms 非并发:211,105ms

Top5NHibernate 非并发:1,230,465ms

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

5)、框架优缺点分析。

Gentle.Net

优点:支持t-sql,语法简单方便,效率高。

缺点:依赖代码生成器生成每个实体类。


iBatis

优点效率比较高,尤其是非并发下效果很高,比较稳定。

缺点:配置文件比较多,t-sql在每个配置文件里面写,条件查询比较麻烦。


SubSonic

优点:删除和查询效果很好,添加比较慢。

缺点:语法比较接近Linq,语法自成一派比较不满意。


NHibernate

优点:覆盖功能比较全,稳定性好,集成性能好,使用比较广泛,支持t-sqlhql语法。

缺点:配置比较多,比较麻烦,效率比较慢。


NBear

优点:配置最简单。

缺点:操作语法不成熟,不支持t-sql,使用起来不方便,已经很久没有更新了。


ps:大家根据测试的结果自行选择合适的框架。





本文转自王磊的博客博客园博客,原文链接:http://www.cnblogs.com/vipstone/archive/2011/09/30/2196292.html,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
8天前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
93 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
8天前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
138 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
18天前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
296 0
|
26天前
|
缓存 安全 Linux
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
93 0
|
3月前
|
Web App开发 开发框架 .NET
Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
Pytest 与 Playwright 集成可提升自动化测试效率,支持参数化测试、多浏览器并行执行及统一报告生成。通过数据驱动、Fixture 管理和并行优化,显著增强测试覆盖率与执行速度,适用于复杂 Web 应用测试场景。
|
4月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架
132 3
Metasploit Pro 4.22.7-2025061201 (Linux, Windows) - 专业渗透测试框架
|
2月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025073001 (Linux, Windows) - 专业渗透测试框架
128 0
|
3月前
|
测试技术 API C++
Playwright 自动化测试系列(7)| 第三阶段:测试框架集成​​Page Object 模式
本课程详解Playwright测试框架中的Page Object模式,通过电商登录-下单实战演示PO架构设计与高级技巧,结合Pytest实现多用户测试。重点解析PO模式提升代码复用性、降低维护成本的核心价值,并提供常见问题解决方案,助力构建高可维护性的自动化测试体系。
|
3月前
|
Java 测试技术 API
自动化测试框架深度解析与选择指南
Apache JMeter是Apache组织基于Java开发的一款压力测试工具,旨在测试软件的性能承受能力。它支持多种协议测试及功能测试,提供灵活的断言创建能力,如同创建带断言的脚本来验证程序是否返回预期结果。

热门文章

最新文章