我最近被要求排除使用微软复合UI应用程序块构建的应用程序中的一些性能问题 - 特别是加载时间过长。依赖注入启动性能
这是围绕Microsoft的ObjectBuilder依赖注入框架构建的,它使用反射/属性来注册类。分析表明,在启动时,应用程序花费了大量时间进行反射,因为ObjectBuilder扫描每个加载的程序集中的每种类型,以搜索要注册的内容。
替代DI框架似乎也都使用属性,XML配置或纯代码。
似乎没有任何其他基于属性的框架会更好,而且我也怀疑成堆的XML必须被解析时的启动时间等。
基于纯代码的框架看起来应该快得多,但是它们的灵活性也差得多,所以看起来好像没有明确的好选择......
这让我去搜索对于DI容器基准测试,但我能找到的唯一一个是:http://www.codinginstinct.com/2008/04/ioc-container-benchmark-unity-windsor.html。
虽然它是一个很好的基准测试,但它只测量使用容器可以快速创建1百万个对象。我没有兴趣创建100万个对象,我只是希望应用程序尽快启动,所以我要找的是有关DI Container 启动的任何信息费用,无论是博客文章,轶事,还是甚至是像“这是一种使ObjectBuilder更快”的简单方法。
在此先感谢
同意了,很多时候是由于每个班的JIT。 – 2009-01-22 03:02:58