分类:
架构设计
.net开发 2009-11-07 16:25
503人阅读
评论(1)
收藏
举报
想在项目中大量使用依赖注入,故对其性能做了一个测试。
测试使用spring.net和微软企业库(Enterprise Library 4.1)来做依赖注入。
测试场景:
- 对同一个对象生成10000次。
- 单例模式下,取得对象10000次。
- 对同一个对象生成10000次。
- 单例模式下,取得对象10000次。
测试环境:
CPU:Q9500
内存:4G
操作系统:windows7
spring.net: 1.20
Enterprise Library 4.1
测试方式:
每个场景单纯测试,排除相互影响,每次测试运行3次,取平均值。
测试结果:
简单构造函数,取对象运行1万次
单例模式下加载时间对比
非单例模型下
复杂构造函数,取对象运行1万次
单例模式下加载时间对比
非单例模型下
数据分析
- l 容器的加载,企业库要比spring快大约10-20微秒。
- l 获取对象在单例模式下,企业库比spring慢大约50微秒/10000次。(每次大约0.005微秒)
- l 获取对象在单例模式下,spring注入只需要4-5微秒/10000次。 (每次大约0.0005微秒)
- l 获取对象在非单例模式下, 属性注入比不使用相差50微秒/10000次。(每次大约0.005微秒)
总结
两种依赖注入方式性能不存在太多差异。即使在执行一万次的情况下,也不会超过50微秒,实际使用中我们可以完全忽略不计。
依赖注入比直接实例化会慢50微秒/10000次,在单例模式用spring的情况下只慢50微秒/10000次,实际使用中我们也可以完全忽略不计。
总得来说,依赖注入可以放心使用,对系统性能产生影响可以忽略不计。
测试源码下载:http://download.csdn.net/source/1798686 (编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|