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 @   Teddy's Knowledge Base  Views(7898)  Comments(30Edit  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示