我最近被要求排除使用微軟複合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