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 的功能,若是您還想要進一步瞭解的話,請看這篇文章測試

相關文章
相關標籤/搜索