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