Source code of my performance comparison of the most popular .NET IoC containers:
www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison
Author: Daniel Palme
Blog: www.palmmedia.de
Twitter: @danielpalme
First value: Time of single-threaded execution in [ms]
Second value: Time of multi-threaded execution in [ms]
*: Benchmark was stopped after 1 minute and result is extrapolated.
Container | Singleton | Transient | Combined | Complex |
---|---|---|---|---|
No | 61 53 |
68 62 |
83 103 |
90 82 |
abioc 0.6.0 | 27 37 |
31 57 |
48 84 |
63 72 |
Autofac 4.6.1 | 781 616 |
715 556 |
1933 1947 |
6248 6452 |
Caliburn.Micro 1.5.2 | 465 270 |
533 322 |
1583 906 |
7403 3712 |
Catel 5.1.0 | 325 342 |
4252 4634 |
9636 10392 |
22053 23370 |
DryIoc 2.12.2 | 37 42 |
37 61 |
57 87 |
72 77 |
Dynamo 3.0.2 | 95 70 |
104 86 |
207 158 |
685 381 |
fFastInjector 1.0.1 | 66 66 |
126 99 |
249 171 |
602 350 |
Funq 1.0.0.0 | 118 90 |
137 110 |
381 251 |
1124 616 |
Grace 6.3.0 | 27 41 |
36 63 |
51 79 |
64 78 |
Griffin 1.1.4 | 280 182 |
304 203 |
657 431 |
1888 1114 |
HaveBox 2.0.0 | 40 48 |
51 62 |
65 88 |
103 95 |
IfInjector 0.8.1 | 75 60 |
128 97 |
145 124 |
197 135 |
LightCore 1.5.1 | 184 189 |
2191 1301 |
26718 31570 |
151128* 188142* |
LightInject 5.1.0 | 27 42 |
38 59 |
51 84 |
69 76 |
LinFu 2.3.0.41559 | 3167 1709 |
16506 11878 |
45492 29568 |
116514* 76757* |
Maestro 1.5.4 | 356 254 |
1755 2906 |
2437 1743 |
4342 2528 |
Mef 4.0.0.0 | 22679 11820 |
37640 25052 |
57462 68730* |
112712* 131716* |
Mef2 1.0.32.0 | 309 217 |
267 174 |
363 241 |
693 411 |
MicroResolver 2.3.5 | 25 39 |
34 59 |
55 77 |
92 89 |
MicroSliver 2.1.6 | 192 232 |
742 619 |
2394 1786 |
7159 6162 |
Microsoft Extensions DependencyInjection 2.0.0 | 198 223 |
112 92 |
301 319 |
1121 1176 |
Mugen 3.5.1 | 484 444 |
711 751 |
2285 2494 |
8297 9494 |
Munq 3.1.6 | 90 75 |
161 107 |
517 417 |
1812 1050 |
Ninject 3.3.0 | 2673 1831 |
8121 6143 |
23986 16122 |
69556* 50795 |
Rezolver 1.2.7050.900 | 135 104 |
176 135 |
227 177 |
367 238 |
SimpleInjector 4.0.11 | 58 53 |
87 80 |
104 105 |
139 109 |
Spring.NET 2.0.1 | 950 987 |
9711 11447 |
26941 23873 |
74745* 57777 |
Stashbox 2.5.4 | 35 42 |
46 58 |
57 80 |
75 78 |
StructureMap 4.5.2 | 1183 656 |
1306 800 |
3471 2036 |
8933 5270 |
Unity 4.0.1 | 2517 1375 |
3761 1962 |
10161 5372 |
27963 16013 |
Windsor 4.0.0 | 516 405 |
1967 1164 |
5812 3392 |
17496 9639 |
Container | Property | Generics | IEnumerable | Conditional | Child Container | Asp Net Core | Interception With Proxy |
---|---|---|---|---|---|---|---|
No | 119 99 |
73 79 |
177 139 |
78 69 |
606 361 |
72 65 |
|
abioc 0.6.0 | 741 506 |
||||||
Autofac 4.6.1 | 6235 6537 |
2006 1794 |
7577 5477 |
1365 1413 |
53762 31770 |
14338 11871 |
22996 12849 |
Caliburn.Micro 1.5.2 | 9157 4733 |
5965 3393 |
|||||
Catel 5.1.0 | 9844 10177 |
4313 4553 |
|||||
DryIoc 2.12.2 | 95 103 |
50 78 |
281 203 |
62 68 |
869 536 |
||
Dynamo 3.0.2 | 828 455 |
||||||
fFastInjector 1.0.1 | |||||||
Funq 1.0.0.0 | 1090 639 |
||||||
Grace 6.3.0 | 83 96 |
49 68 |
269 198 |
54 64 |
48837 29309 |
511 421 |
906 618 |
Griffin 1.1.4 | |||||||
HaveBox 2.0.0 | 741 443 |
1860 1198 |
774 509 |
||||
IfInjector 0.8.1 | 345 227 |
147 120 |
|||||
LightCore 1.5.1 | 2289 1755 |
15862 14477 |
34754 20480 |
||||
LightInject 5.1.0 | 95 97 |
49 79 |
280 196 |
337 216 |
2116 1740 |
1567 976 |
|
LinFu 2.3.0.41559 | |||||||
Maestro 1.5.4 | 4502 2616 |
2103 2128 |
4443 2483 |
2186 1691 |
7591 4418 |
||
Mef 4.0.0.0 | 124500* 133833* |
137086* 114221* |
97231* 100896* |
||||
Mef2 1.0.32.0 | 1408 819 |
309 213 |
1425 811 |
||||
MicroResolver 2.3.5 | 39 62 |
262 195 |
|||||
MicroSliver 2.1.6 | |||||||
Microsoft Extensions DependencyInjection 2.0.0 | 125 108 |
402 265 |
1931 1614 |
||||
Mugen 3.5.1 | 10005 8348 |
72189* 72787* |
5619 7027 |
1824 1883 |
550418* 335171* |
13742 16268 |
|
Munq 3.1.6 | 1536 847 |
||||||
Ninject 3.3.0 | 65550* 46762 |
26218 15685 |
68614* 47648 |
17653 14828 |
71116000* 48813008* |
19275 14064 |
|
Rezolver 1.2.7050.900 | 500 317 |
218 161 |
588 364 |
3143050* 1677185* |
10298 7844 |
||
SimpleInjector 4.0.11 | 212 159 |
101 87 |
785 474 |
86 76 |
7580 4207 |
||
Spring.NET 2.0.1 | 52419 51992 |
43647 43419 |
|||||
Stashbox 2.5.4 | 93 95 |
57 76 |
289 203 |
63 72 |
171702* 98831* |
654 493 |
857 552 |
StructureMap 4.5.2 | 8781 5165 |
2605 1520 |
9131 4919 |
3355666* 1794884* |
44899 27751 |
7820 4270 |
|
Unity 4.0.1 | 29064 16150 |
43685 23347 |
33727 19896 |
93122* 49665 |
|||
Windsor 4.0.0 | 34788 19114 |
14730 8383 |
16344 9298 |
233653* 127558* |
13738 7473 |
Container | Prepare And Register | Prepare And Register And Simple Resolve |
---|---|---|
No | 2 |
3 |
abioc 0.6.0 | 5739 |
5992 |
Autofac 4.6.1 | 284 |
313 |
Caliburn.Micro 1.5.2 | 55 |
56 |
Catel 5.1.0 | 9115 |
9925 |
DryIoc 2.12.2 | 56 |
227 |
Dynamo 3.0.2 | 16240 |
16527 |
fFastInjector 1.0.1 | 6390 |
6336 |
Funq 1.0.0.0 | 8 |
8 |
Grace 6.3.0 | 153 |
869 |
Griffin 1.1.4 | 8442 |
7933 |
HaveBox 2.0.0 | 54925 |
55463 |
IfInjector 0.8.1 | 1397 |
2016 |
LightCore 1.5.1 | 226 |
204 |
LightInject 5.1.0 | 175 |
748 |
LinFu 2.3.0.41559 | 107 |
338 |
Maestro 1.5.4 | 172 |
747 |
Mef 4.0.0.0 | 17 |
2299 |
Mef2 1.0.32.0 | 5684 |
6729 |
MicroResolver 2.3.5 | 27322 |
67518 |
MicroSliver 2.1.6 | 12 |
17 |
Microsoft Extensions DependencyInjection 2.0.0 | 21 |
29 |
Mugen 3.5.1 | 424 |
1820 |
Munq 3.1.6 | 9079 |
9500 |
Ninject 3.3.0 | 121596* |
94278* |
Rezolver 1.2.7050.900 | 221 |
3286 |
SimpleInjector 4.0.11 | 661 |
3199 |
Spring.NET 2.0.1 | 25014 |
24884 |
Stashbox 2.5.4 | 71 |
522 |
StructureMap 4.5.2 | 1447 |
7360 |
Unity 4.0.1 | 588 |
2209 |
Windsor 4.0.0 | 2985 |
3137 |
The benchmark was executed on the following machine:
CPU: Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
Memory: 15,89GB