My.Ioc 的性能

IoC/DI 这个概念,最初是由 Martin Fowler 提出来的。以后,很快在 Java 社区大行其道。在 .net 社区,IoC 的流行要比 Java 晚一些。尽管如此,如今开源社区中也已经出现了不少使用 .net 编写的 IoC 框架,比较有表明性的有:Castle Windsor/Spring.net/Autofac/StructureMap/NInject/Unity...html

为了解决一个相同的问题,相继出现这么多类似的框架(你们不厌其烦地重复造轮子),不能不说 IoC 的热度实在不凡。但这也给咱们在选用 IoC 框架时带来一些困难。这么多可选项,到底选用哪一个比较好呢。git

有一个德国人 Daniel Palme 写了一篇文章 IoC Container Benchmark - Performance comparison,试图从性能和功能两方面对他所知的一些现有 IoC 框架作出评判,为此还专门在 github 上建了一个项目github

做者看了他的代码,以为很能够借鉴,遂把他的代码拷贝过来,剔除了一些不能运行的项目(由于做者机器配置比较低,只能安装 .net4.0,而测试中有些项目要求 .net4.5 才能运行),再把本身的 My.Ioc 框架加入测试中,也作了一个性能比较,跟 My.Ioc 源码一块儿上传到 codeplex 中,感兴趣的同窗能够本身到这里下载。框架

下面这张表格是做者在本身机器上测试的结果,仅供各位参考:性能

Container Container Request Combined Complex Generics IEnumerable Conditional Interception
Ninject 1760 2927 6372 17470 7100 13655 0 0
Unity 511 569 1385 3876 0 6684 0 0
AutoFac 418 875 1579 3723 1583 4123 0 0
MugenInjection 420 394 550 1088 1281 1152 0 0
MyIoc 198 204 224 292 222 410 0 0
SimpleInjector 189 189 195 196 191 223 0 0
No 183 182 185 189 0 0 0 0

至于 My.Ioc 的功能,若是您还想要进一步了解的话,请看这篇文章测试

相关文章
相关标签/搜索