【发布时间】:2010-12-23 01:56:10
【问题描述】:
我最近被要求对使用 Microsoft 的 Composite UI Application 块构建的应用程序中的一些性能问题进行故障排除 - 特别是加载时间过长。
这是围绕微软的 ObjectBuilder 依赖注入框架构建的,它使用反射/属性来注册类。分析表明,应用程序在启动时会花费大量时间进行反射,因为 ObjectBuilder 会扫描每个加载的程序集中的每种类型以搜索要注册的内容。
其他 DI 框架似乎也都使用属性、XML 配置或纯代码。
似乎没有任何其他基于属性的框架会更好,而且我对必须解析大量 XML 等的启动时间持怀疑态度。
基于纯代码的框架看起来应该快得多,但它们的灵活性也差很多,所以看起来并不是一个明确的好选择......
这导致我搜索 DI 容器基准,但我唯一能找到的是这个:http://www.codinginstinct.com/2008/04/ioc-container-benchmark-unity-windsor.html。
虽然它是一个很好的基准,但它只衡量使用容器创建 100 万个对象的速度。我对创建 100 万个对象没有兴趣,我只是希望应用程序尽快启动,所以我正在寻找有关 DI 容器启动成本的任何信息,无论是博客文章,轶事,甚至像“这是一种让 ObjectBuilder 更快的方法”这样简单的东西。
提前致谢
【问题讨论】:
标签: .net dependency-injection benchmarking