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 3 minutes and result is extrapolated.
OoM: Benchmark was stopped after an OutOfMemoryException was thrown.
Error: Benchmark was stopped after an Exception was thrown.
| Container | Singleton | Transient | Combined | Complex |
|---|---|---|---|---|
| No | 108 78 |
126 116 |
147 168 |
222 206 |
| Autofac 3.5.2 | 893 723 |
2568 2571 |
6407 4071 |
18191 11244 |
| Caliburn.Micro 1.5.2 | 538 353 |
670 405 |
1867 1085 |
7969 4632 |
| Catel 4.1.0 | 456 460 |
5448 6074 |
14069 15657 |
32753 36704 |
| DryIoc 1.4.1 | 31 48 |
42 57 |
56 83 |
92 81 |
| Dynamo 3.0.2.0 | 105 80 |
134 103 |
234 162 |
823 493 |
| fFastInjector 1.0.1 | 75 68 |
134 112 |
280 204 |
680 428 |
| Funq 1.0.0.0 | 149 111 |
181 132 |
451 338 |
1327 852 |
| Grace 2.4.2 | 188 127 |
303 294 |
907 926 |
2061 1291 |
| Griffin 1.1.2 | 374 231 |
377 243 |
971 573 |
2813 1548 |
| HaveBox 2.0.0 | 91 76 |
110 95 |
122 87 |
222 194 |
| Hiro 1.0.4.41795 | 207 140 |
209 146 |
219 154 |
290 199 |
| IfInjector 0.8.1 | 108 86 |
144 115 |
180 142 |
233 166 |
| LightCore 1.5.1 | 203 171 |
3364 1998 |
34315 34496 |
193101* 205435* |
| LightInject 3.0.2.6 | 34 44 |
49 63 |
70 74 |
107 95 |
| LinFu 2.3.0.41559 | 4163 2443 |
24399 16041 |
64412 41898 |
170694 104578 |
| Maestro 1.5.4 | 333 259 |
397 306 |
1115 728 |
3512 2556 |
| Mef 4.0.0.0 | 34967 19746 |
53521 31946 |
87598 65396 |
175864 169289 |
| Mef2 1.0.30.0 | 252 179 |
263 187 |
328 250 |
559 481 |
| MicroSliver 2.1.6.0 | 566 303 |
818 543 |
2901 1802 |
8322 8170 |
| Mugen 3.5.1 | 459 359 |
810 582 |
2380 1666 |
9042 6674 |
| Munq 3.1.6 | 111 79 |
283 192 |
751 454 |
2389 1482 |
| Ninject 3.2.2.0 | 7259 4486 |
24276 15296 |
69214 39610 |
191033* 117563 |
| Petite 0.3.2 | 6626 4071 |
5546 3373 |
6971 4657 |
8246 6118 |
| QuickInject 1.0.0.12 | 180 173 |
198 169 |
295 259 |
671 637 |
| SimpleInjector 2.7.3 | 58 62 |
113 85 |
121 103 |
168 137 |
| Spring.NET 1.3.2 | 1046 808 |
16566 10128 |
45510 29798 |
117230 75645 |
| StructureMap 3.1.4.143 | 2531 2831 |
2787 2845 |
8181 8274 |
19198 20205 |
| StyleMVVM 3.1.5 | 656 454 |
543 383 |
833 527 |
2170 2363 |
| TinyIoC 1.3 | 454 468 |
2123 1548 |
8825 6132 |
35707 26670 |
| Unity 3.5.1404.0 | 2873 3812 |
7182 3038 |
15294 8012 |
39116 21296 |
| Windsor 3.3.0 | 519 383 |
2626 3658 |
8893 4861 |
26098 16700 |
| Container | Property | Generics | IEnumerable | Conditional | Child Container | Interception With Proxy |
|---|---|---|---|---|---|---|
| No | 348 176 |
107 106 |
275 177 |
214 180 |
1899 524 |
88 106 |
| Autofac 3.5.2 | 32706 20892 |
5158 3346 |
17288 12199 |
108964 86101 |
51505 37712 |
|
| Caliburn.Micro 1.5.2 | 10427 6064 |
7758 4514 |
||||
| Catel 4.1.0 | 13698 15615 |
5884 5804 |
||||
| DryIoc 1.4.1 | 97 87 |
64 70 |
318 225 |
68 69 |
||
| Dynamo 3.0.2.0 | 855 519 |
|||||
| fFastInjector 1.0.1 | ||||||
| Funq 1.0.0.0 | 1299 789 |
|||||
| Grace 2.4.2 | 2828 1589 |
707 467 |
2601 1645 |
805 536 |
17498 10605 |
8723 5580 |
| Griffin 1.1.2 | ||||||
| HaveBox 2.0.0 | 1119 697 |
2252 1373 |
868 538 |
|||
| Hiro 1.0.4.41795 | 3104 1931 |
|||||
| IfInjector 0.8.1 | 385 269 |
170 131 |
||||
| LightCore 1.5.1 | 2487 1843 |
23120 15653 |
52456 31250 |
|||
| LightInject 3.0.2.6 | 97 94 |
74 82 |
349 246 |
73 67 |
1660 1093 |
|
| LinFu 2.3.0.41559 | ||||||
| Maestro 1.5.4 | 3866 2367 |
783 534 |
3901 2707 |
1070 693 |
8955 5331 |
|
| Mef 4.0.0.0 | 180329* 178984 |
198621* 151746 |
137126 140873 |
|||
| Mef2 1.0.30.0 | 1388 1099 |
347 241 |
1759 1379 |
|||
| MicroSliver 2.1.6.0 | ||||||
| Mugen 3.5.1 | 11883 7521 |
71914 76734 |
6944 7444 |
2060 1369 |
706941* OoM |
5051527* Error |
| Munq 3.1.6 | 1899 1169 |
|||||
| Ninject 3.2.2.0 | 165177 106569 |
67347 42019 |
151450 96672 |
53576 31926 |
45724250* 37677615* |
36162 22413 |
| Petite 0.3.2 | 6297 3789 |
|||||
| QuickInject 1.0.0.12 | 204 182 |
1280234* 919692* |
||||
| SimpleInjector 2.7.3 | 235 177 |
100 95 |
865 609 |
229 177 |
9012 6893 |
|
| Spring.NET 1.3.2 | 103584 66296 |
77502 43561 |
||||
| StructureMap 3.1.4.143 | 18987 19486 |
5485 8342 |
17175 18164 |
3921913* 2703535* |
18162 12085 |
|
| StyleMVVM 3.1.5 | 2391 1093 |
1407 881 |
3703 4850 |
1598 965 |
||
| TinyIoC 1.3 | 5062 4660 |
15411 9844 |
||||
| Unity 3.5.1404.0 | 40234 21537 |
65395 41530 |
53041 31885 |
128682 82599 |
||
| Windsor 3.3.0 | 52083 32659 |
27157 17004 |
26641 13537 |
340330* Error |
21772 13042 |
| Container | Prepare And Register | Prepare And Register And Simple Resolve |
|---|---|---|
| No | 4 |
4 |
| Autofac 3.5.2 | 487 |
643 |
| Caliburn.Micro 1.5.2 | 63 |
70 |
| Catel 4.1.0 | 9398 |
8824 |
| DryIoc 1.4.1 | 45 |
22822 |
| Dynamo 3.0.2.0 | 19090 |
18509 |
| fFastInjector 1.0.1 | 9324 |
8177 |
| Funq 1.0.0.0 | 12 |
Error |
| Grace 2.4.2 | 122304 |
123571 |
| Griffin 1.1.2 | 12609 |
12089 |
| HaveBox 2.0.0 | 81766 |
83181 |
| Hiro 1.0.4.41795 | 310074* |
362562* |
| IfInjector 0.8.1 | 2101 |
2795 |
| LightCore 1.5.1 | 233 |
247 |
| LightInject 3.0.2.6 | 316 |
1079 |
| LinFu 2.3.0.41559 | 140 |
538 |
| Maestro 1.5.4 | 232 |
952 |
| Mef 4.0.0.0 | 23 |
3054 |
| Mef2 1.0.30.0 | 7330 |
11858 |
| MicroSliver 2.1.6.0 | 18 |
23 |
| Mugen 3.5.1 | 559 |
2378 |
| Munq 3.1.6 | 12084 |
12117 |
| Ninject 3.2.2.0 | 115051 |
157982 |
| Petite 0.3.2 | 25 |
49 |
| QuickInject 1.0.0.12 | 55 |
1721 |
| SimpleInjector 2.7.3 | 273 |
1329 |
| Spring.NET 1.3.2 | 36901 |
35698 |
| StructureMap 3.1.4.143 | 1071 |
10211 |
| StyleMVVM 3.1.5 | 91820 |
85792 |
| TinyIoC 1.3 | 185 |
224 |
| Unity 3.5.1404.0 | 1612 |
2584 |
| Windsor 3.3.0 | 4141 |
4463 |


