ADO.NET、NBear和NHibernate简单读写性能比较


下载测试示例程序

说明:

本测试使用SqlServer2000的Northwind数据库的Categories、Customers和Products三个表,测试比较ADO.NET、NBear和NHibernate的读写性能。公平起见,测试代码并没有使用太多特别框架的独有功能或缓存,在实际测试前分别都进行了预读(保证元数据等都在第一次运行时已载入)。

读测试每次循环分别读取Categories、Customers和Products三个表的全部数据,三个组件分别返回DataSet,强类型实体数组和IList,虽然返回的数据类型不同,但是,实际上都包括了对返回数据的填充操作,因此,应该是相对公平的。结果显示NBear的性能近似于ADO.NET;NHibernate的独性能要差5倍左右。

写测试每次循环分别新建、更新并删除Categories、Customers和Products三个表中的各一条记录。ADO.NET由于是直接执行SQL的,速度最快是肯定的。NBear相比ADO.NET慢约3倍,NHibernate则大约慢2倍。

鉴于一般的系统读操作的频率远高于写操作,NBear的平均性能应该要比NHibernate好处不少。

测试并不完全,仅作参考。

Read Performance Comparison

Repeat Times ADO.NET (ms) NBear (ms) NHibernate (ms)
1 218 234 1140
2 484 515 3812
5 1109 1218 6078
10 2218 2484 12390

Write Performance Comparison

Repeat Times ADO.NET (ms) NBear (ms) NHibernate (ms)
20 125 312 234
40 203 656 437
100 546 1609 1046
200 984 3046 2015
posted @ 2006-12-29 18:14  Teddy's Knowledge Base  Views(7898)  Comments(30Edit  收藏  举报