|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
net网页编程欺骗了我们那么多年,如今的多核时代,我认为它气数已尽!我写了两段测试程序来考证LinqtoSql和NHibernate的功能,做了好久的测试,以下是文章的截选。发给人人参考一下,人人多指教。
测试思绪:
<br>
10万、100万量级递增的数据范围运转工夫以秒记,准确到小数点后七位。关于每一个测试模块,测试运转3次取后2次运转工夫的均匀值,尽量扫除数据库对单一使用程序的缓存和语句编译等要素的影响。
同时来编写NHibernate和LinqtoSql测试程序,并对照其各模块完成的代码。两个测试程序均按以下体例声明测试类
[TestFixture]
publicclassTestApp
{
[TestFixtureSetUp]
初始化函数
[Test]
测试函数
[TestFixtureTearDown]
卸载函数
………
}
数据及测试软件筹办
数据寄存于SQLSERVER2005,NHibernate版本为2.0,编程情况为VS.net2008,程序接纳NUint2.4.8单位测试工具来直不雅地猎取运转工夫(ExecutionTime),关于考察功能的目标。依照千、万、
操纵
ORM
千条数据
万条数据
十万条数据
百万条数据
写进
LinqtoSQL
0.7168726
2.9009993
24.7615404
312.4021605
NHiberante
0.3241660
01.8340702
16.8427108
217.5106473
查询
LinqtoSQL
0.7700709
0.7906083
1.0457957
4.3646305
NHiberante
0.2678490
0.5244701
3.9022920
43.3711542
更新
LinqtoSQL
1.3043570
5.1352840
44.4361433
468.34
NHiberante
0.1090214
4.2710070
38.3539783
401.7142972
删除
LinqtoSQL
1.4256575
7.5339277
66.3342046
744.9148032
NHiberante
1.4565611
5.9940426
56.7348532
614.4343719
<br>
<br>
注:以上实行数据的测试硬件前提为IntelCoreDuoE4500,2G内存,320G7200转希捷硬盘。对两种产物均未接纳任何情势的优化。
结论:
(1)、LinqtoSql与NHibernate这两种框架产物在批量更新和删除数据时功能体现非常差,与间接用ado.net举行操纵在十万和百万数据量级时相差近百倍。虽处置实上,使用ORM类产物批量处置数据库的操纵有背于面向对象的计划头脑。但也能够使我们懂得到,在使用ORM框架的数据库使用体系中应当接纳更间接的操纵体例办理此类操纵的功能成绩。
(2)、在十万条之内级别操纵数据量的使用情况下,LinqtoSql与NHibernate都能以能够较好的功能完成数据库操纵。这类前提下NHibernate在读、写、更新、删除各项操纵中均年夜幅度抢先于微软的LinqtoSql,出格是在万条数据之内这个级别上NHibernate体现出来的功能几近是LinqtoSql的一倍。操纵的数据量越小这类功能的差别越分明。
(3)在单次操纵十万数据、百万数据级其余数据库使用中,LinqtoSql的查询功能非常微弱,成就几近与ado.net间接操纵数据库功能吃平。但别的操纵功能仍被NHibernate年夜年夜抢先。
本文出自:http://www.ckuyun.com/pcode/archive/2008/11/13/1332402.html
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情! |
|