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

ContractedBlock.gif 测试数据库与表


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,如需转载请自行联系原作者

目录
相关文章
|
16天前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
1月前
|
敏捷开发 分布式计算 测试技术
深入理解软件测试中的自动化框架选择与优化策略
【2月更文挑战第29天】 在软件开发的生命周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的普及,自动化测试成为确保软件质量和加快产品上市速度的关键手段。本文将探讨在构建自动化测试框架时面临的挑战,分析不同类型自动化框架的特点及其适用场景,并提出一系列优化策略,旨在帮助测试工程师提高测试效率,确保测试结果的准确性。
23 0
|
5天前
|
Web App开发 JavaScript 前端开发
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第20天】 在软件测试领域,自动化测试已成为提升测试效率和确保产品质量的关键手段。Selenium作为一款广泛使用的开源自动化测试框架,其设计精巧且功能强大,为Web应用提供了一种灵活、高效的测试解决方案。本文将深入探讨Selenium的核心架构与实现细节,解析其如何通过模拟用户操作来执行测试用例,以及它如何适应不断变化的Web技术标准。通过对Selenium内部机制的剖析,旨在帮助测试工程师更好地掌握该工具,并在测试实践中发挥其最大效能。
|
7天前
|
监控 测试技术 数据安全/隐私保护
如何将代理IP集成到自动化测试框架中?
如何将代理IP集成到自动化测试框架中?
|
9天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
14 1
|
9天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
11天前
|
监控 测试技术 API
深入理解自动化测试框架Selenium的设计与实现
【4月更文挑战第14天】在软件开发过程中,自动化测试是确保代码质量、减少人工重复劳动的关键步骤。Selenium作为一款广泛使用的自动化测试工具,提供了对多种浏览器和操作系统的支持。本文将探讨Selenium的核心组件及其架构设计,分析其如何通过WebDriver与浏览器交互,以及它如何支持多种编程语言进行脚本编写。同时,我们还将讨论Selenium Grid的作用以及它如何实现并行测试,以缩短测试周期并提高测试效率。
176 59
|
13天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
27天前
|
敏捷开发 设计模式 监控
深入理解自动化测试框架的设计原则
在软件开发的复杂多变环境中,自动化测试已成为确保产品质量和加速市场交付的关键步骤。本文将探讨自动化测试框架的设计原则,包括模块化、可扩展性、易用性和可靠性,旨在为软件测试工程师提供构建高效、健壮且易于维护的自动化测试系统的指导。通过分析设计模式的应用,我们将了解如何减少代码冗余,提高测试覆盖率,并适应快速变化的技术要求。
|
28天前
|
前端开发 IDE JavaScript
深入理解自动化测试框架Selenium的设计与实现
本文旨在探讨开源自动化测试框架Selenium的核心设计及其实现机制。通过分析其架构、组件和工作原理,揭示Selenium如何有效地支持跨浏览器、跨平台的自动化Web测试。文中不仅介绍了Selenium的主要功能模块,还详细讨论了其面临的挑战及应对策略,为读者提供了深入了解和使用Selenium的理论基础和实践指导。

热门文章

最新文章