框架已经被越来越多的人所关注与使用了,今天我们就来研究一下net方面的几个主流ORM框架,以及它们的效率测试(可能会有遗漏欢迎大家讨论)。
ORM框架:Object/RelationMapping(对象/关系映射)的缩写,易于理解的模型化数据的方法。简单的说就是把数据库的关系型数据类型转换为用对象型程序控制的框架类型。
今天研究的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)、效率测试环境介绍。采用netframework4.0Web网站项目,使用Stopwatch进行执行时间统计,使用Parallel对象实现并发操作。为了测试的接近实际型,我执行的时候关掉了电脑上的所有程序,除测试程序,10次相同环境下重复测试10万条数据量的平均值。测试数据库T-Sql:
测试数据库与表
2)、测试框架简介。Stopwatchwatch=newStopwatch();watch.Start();Parallel.For(0,100000,i=>{//…业务});watch.Stop();Response.Write(watch.ElapsedMilliseconds);3)、测试CRUD结果表格对比。添加功能测试表:操作添加数据量(万条)10w测试次数10次框架名称GentleNetNBeariBateSubSonicNHibernate并发执行时间(ms)36,731113,79336,32156,342未测非并发执行时间(ms)115,875223,768100,719124,8441,247,572
修改功能测试表:操作修改数据量(万条)10w测试次数10次框架名称GentleNetNBeariBateSubSonicNHibernate并发执行时间(ms)25,985140,77933,36636,916未测非并发执行时间(ms)98,868279,851102,875102,8211,226,506
查询功能测试表:操作查询数据量(万条)10w测试次数10次框架名称GentleNetNBeariBateSubSonicNHibernate并发执行时间(ms)19,77694,26539,85426,784未测非并发执行时间(ms)54,515157,67637,33967,3441,438,398
删除功能测试表:操作删除数据量(万条)10w测试次数10次框架名称GentleNetNBeariBateSubSonicNHibernate并发执行时间(ms)33,802101,51631,96428,223未测非并发执行时间(ms)102,107211,10588,42097,8461,230,465
4)、CRUD测试排行。以下为10万条数据的查询排行,单位为毫秒(ms)。========================================================增加排行:Top1:iBate并发:36,321ms非并发:100,719msTop2:GentleNet并发:36,731ms非并发:115,875msTop3:SubSonic并发:56,342ms非并发:124,844Top4:NBear并发:113,793ms非并发:223,768Top5:NHibernate非并发:1,247,572
========================================================修改排行:Top1:GentleNet并发:25,985ms非并发:98,868msTop2:iBate并发:33,366ms非并发:102,875Top3:SubSonic并发:36,916ms非并发:124,844Top4:NBear并发:113,793ms非并发:102,821Top5:NHibernate非并发:279,851
========================================================查询排行:Top1:GentleNet并发:19,776ms非并发:54,515msTop2:SubSonic并发:26,784ms非并发:67,344msTop3:iBate并发:39,854ms非并发:37,339(非并发下查询效率最高)msTop4:NBear并发:94,265ms非并发:157,676ms
Top5:NHibernate非并发:1,438,398
========================================================删除排行:Top1:SubSonic并发:28,223ms非并发:97,846msTop2:iB 香港云主机ate并发:31,964ms非并发:88,420msTop3:GentleNet并发:33,802ms非并发:102,107msTop4:NBear并发:101,516ms非并发:211,105msTop5:NHibernate非并发:1,230,465ms========================================================
5)、框架优缺点分析。Gentle.Net优点:支持t-sql,语法简单方便,效率高。缺点:依赖代码生成器生成每个实体类。
iBatis优点:效率比较高,尤其是非并发下效果很高,比较稳定。缺点:配置文件比较多,t-sql在每个配置文件里面写,条件查询比较麻烦。
SubSonic优点:删除和查询效果很好,添加比较慢。缺点:语法比较接近Linq,语法自成一派比较不满意。
NHibernate优点:覆盖功能比较全,稳定性好,集成性能好,使用比较广泛,支持t-sql和hql语法。缺点:配置比较多,比较麻烦,效率比较慢。
NBear优点:配置最简单。缺点:操作语法不成熟,不支持t-sql,使用起来不方便,已经很久没有更新了。
ps:大家根据测试的结果自行选择合适的框架。
相关推荐: Win10系统中怎么关闭microsoft自动更新
这篇文章主要介绍Win10系统中怎么关闭micro 香港云主机soft自动更新,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、打开开始菜单,点击“设置”,在Windows设置界面,打开“更新和安全”。二、接下来点击Windows更新下…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。