Performance comparison of .NET IoC containers
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 | 41 | |||
| 49 | 49 | |||
| 59 | 69 | |||
| 76 | 99 | |||
| 103 | ||||
| abioc 0.8.0 | 26 | |||
| 43 | 33 | |||
| 56 | 51 | |||
| 82 | 67 | |||
| 78 | ||||
| Autofac 7.0.1 | 1010 | |||
| 590 | 969 | |||
| 659 | 3118 | |||
| 1917 | 8470 | |||
| 5543 | ||||
| Caliburn.Micro 1.5.2 | 465 | |||
| 270 | 533 | |||
| 322 | 1583 | |||
| 906 | 7403 | |||
| 3712 | ||||
| Catel 5.12.22 | 250 | |||
| 296 | 3979 | |||
| 4314 | 8954 | |||
| 9876 | 25104 | |||
| 23025 | ||||
| DryIoc 4.8.5 | 63 | |||
| 54 | 73 | |||
| 73 | 89 | |||
| 100 | 110 | |||
| 101 | ||||
| DryIocZero 4.0.0 | 110 | |||
| 96 | 88 | |||
| 89 | 98 | |||
| 105 | 220 | |||
| 169 | ||||
| Dynamo 3.0.2 | 95 | |||
| 70 | 104 | |||
| 86 | 207 | |||
| 158 | 685 | |||
| 381 | ||||
| Faster.Ioc 1.0.0 | 25 | |||
| 46 | 72 | |||
| 62 | 67 | |||
| 82 | 139 | |||
| 93 | ||||
| Grace 7.2.1 | 20 | |||
| 31 | 39 | |||
| 55 | 52 | |||
| 84 | 73 | |||
| 83 | ||||
| Lamar 8.0.1 | 61 | |||
| 63 | 86 | |||
| 83 | 117 | |||
| 110 | 130 | |||
| 127 | ||||
| LightInject 6.6.4 | 51 | |||
| 52 | 62 | |||
| 59 | 113 | |||
| 102 | 230 | |||
| 195 | ||||
| Maestro 3.6.6 | 386 | |||
| 269 | 342 | |||
| 241 | 580 | |||
| 438 | 1411 | |||
| 1097 | ||||
| Mef 4.0.0.0 | 22679 | |||
| 11820 | 37640 | |||
| 25052 | 57462 | |||
| 68730* | 112712* | |||
| 131716* | ||||
| Mef2 7.0.0.0 | 298 | |||
| 235 | 327 | |||
| 176 | 327 | |||
| 248 | 621 | |||
| 410 | ||||
| MicroResolver 2.3.5 | 25 | |||
| 39 | 34 | |||
| 59 | 55 | |||
| 77 | 92 | |||
| 89 | ||||
| Microsoft Extensions DependencyInjection 7.0.0 | 68 | |||
| 58 | 96 | |||
| 79 | 110 | |||
| 106 | 131 | |||
| 112 | ||||
| Microsoft.VisualStudio.Composition 17.6.17 | 10905 | |||
| 12502 | 33562 | |||
| 21704 | 66196* | |||
| 25605 | 60406* | |||
| 55918 | ||||
| Mugen MVVM Toolkit 6.5.0 | 102 | |||
| 138 | 409 | |||
| 715 | 2052 | |||
| 2590 | 9348 | |||
| 11352 | ||||
| MvvmCross 8.0.2 | 205 | |||
| 251 | 1318 | |||
| 1402 | 3316 | |||
| 3726 | 8677 | |||
| 9516 | ||||
| Ninject 3.3.6 | 3809 | |||
| 4583 | 13588 | |||
| 11986 | 37822 | |||
| 28199 | 105486* | |||
| 79549* | ||||
| Pure.DI 2.0.0 | 29 | |||
| 33 | 40 | |||
| 62 | 61 | |||
| 88 | 105 | |||
| 104 | ||||
| Rezolver 2.1.0 | 121 | |||
| 100 | 137 | |||
| 126 | 194 | |||
| 171 | 328 | |||
| 238 | ||||
| SimpleInjector 5.4.1 | 87 | |||
| 67 | 71 | |||
| 91 | 152 | |||
| 129 | 233 | |||
| 179 | ||||
| Singularity 0.18.0 | 24 | |||
| 39 | 39 | |||
| 59 | 66 | |||
| 82 | 76 | |||
| 84 | ||||
| Spring.NET 3.0.2 | 565 | |||
| 451 | 3022 | |||
| 1649 | 9816 | |||
| 6870 | 28453 | |||
| 21414 | ||||
| Stashbox 5.11.0 | 40 | |||
| 47 | 57 | |||
| 69 | 78 | |||
| 94 | 127 | |||
| 111 | ||||
| StructureMap 4.7.1 | 1121 | |||
| 717 | 1281 | |||
| 856 | 3410 | |||
| 2166 | 8312 | |||
| 6052 | ||||
| Unity 5.11.10 | 216 | |||
| 148 | 1443 | |||
| 835 | 3326 | |||
| 1995 | 9503 | |||
| 4739 | ||||
| Windsor 6.0.0 | 549 | |||
| 533 | 2065 | |||
| 1168 | 6572 | |||
| 5948 | 20046 | |||
| 18318 | ||||
| ZenIoc 1.0.1 | 306 | |||
| 198 | 267 | |||
| 188 | 674 | |||
| 440 | 1809 | |||
| 1103 | ||||
| Zenject 8.0.0 | 479 | |||
| 448 | 1370 | |||
| 1070 | 3689 | |||
| 3065 | 11142 | |||
| 10106 |
| Container | Property | Generics | IEnumerable | Conditional | Child Container | Asp Net Core | Interception With Proxy |
|---|---|---|---|---|---|---|---|
| No | 186 | ||||||
| 134 | 70 | ||||||
| 75 | 193 | ||||||
| 176 | 53 | ||||||
| 63 | 644 | ||||||
| 596 | |||||||
| 469 | |||||||
| 438 | |||||||
| abioc 0.8.0 | |||||||
| 799 | |||||||
| 506 | |||||||
| Autofac 7.0.1 | 9031 | ||||||
| 5468 | 2319 | ||||||
| 1330 | 11000 | ||||||
| 6339 | 2085 | ||||||
| 1423 | 74767* | ||||||
| 57993 | 44266 | ||||||
| 37346 | 24279 | ||||||
| 13732 | |||||||
| Caliburn.Micro 1.5.2 | 9157 | ||||||
| 4733 | |||||||
| 5965 | |||||||
| 3393 | |||||||
| Catel 5.12.22 | |||||||
| 8872 | |||||||
| 9710 | |||||||
| 3937 | |||||||
| 4257 | |||||||
| DryIoc 4.8.5 | 144 | ||||||
| 131 | 86 | ||||||
| 88 | 294 | ||||||
| 219 | 81 | ||||||
| 79 | |||||||
| 1379 | |||||||
| 1005 | 835 | ||||||
| 555 | |||||||
| DryIocZero 4.0.0 | 294 | ||||||
| 205 | 92 | ||||||
| 92 | 302 | ||||||
| 229 | 380 | ||||||
| 270 | |||||||
| Dynamo 3.0.2 | 828 | ||||||
| 455 | |||||||
| Faster.Ioc 1.0.0 | |||||||
| 95 | |||||||
| 87 | 388 | ||||||
| 287 | 107 | ||||||
| 66 | |||||||
| 797 | |||||||
| 635 | |||||||
| Grace 7.2.1 | 101 | ||||||
| 112 | 50 | ||||||
| 80 | 257 | ||||||
| 210 | 45 | ||||||
| 70 | 50375 | ||||||
| 32231 | 657 | ||||||
| 674 | 827 | ||||||
| 571 | |||||||
| Lamar 8.0.1 | 133 | ||||||
| 98 | 106 | ||||||
| 108 | 634 | ||||||
| 432 | |||||||
| 4753 | |||||||
| 4323 | |||||||
| LightInject 6.6.4 | 259 | ||||||
| 142 | 53 | ||||||
| 69 | 309 | ||||||
| 280 | 494 | ||||||
| 273 | |||||||
| 2098 | |||||||
| 1711 | 1921 | ||||||
| 1005 | |||||||
| Maestro 3.6.6 | 3886 | ||||||
| 2438 | 419 | ||||||
| 318 | 1272 | ||||||
| 843 | |||||||
| 10764 | |||||||
| 8560 | 6757 | ||||||
| 3630 | |||||||
| Mef 4.0.0.0 | 124500* | ||||||
| 133833* | 137086* | ||||||
| 114221* | 97231* | ||||||
| 100896* | |||||||
| Mef2 7.0.0.0 | 1337 | ||||||
| 921 | 273 | ||||||
| 195 | 1851 | ||||||
| 813 | |||||||
| MicroResolver 2.3.5 | 39 | ||||||
| 62 | |||||||
| 262 | |||||||
| 195 | |||||||
| Microsoft Extensions DependencyInjection 7.0.0 | |||||||
| 117 | |||||||
| 94 | 363 | ||||||
| 242 | |||||||
| 4263 | |||||||
| 2412 | |||||||
| Microsoft.VisualStudio.Composition 17.6.17 | 47046 | ||||||
| 34542 | |||||||
| 45837 | |||||||
| 38733 | |||||||
| Mugen MVVM Toolkit 6.5.0 | 436 | ||||||
| 705 | |||||||
| 9749 | |||||||
| 7094 | |||||||
| 4370 | |||||||
| 3103 | |||||||
| MvvmCross 8.0.2 | 1310 | ||||||
| 1415 | 6576 | ||||||
| 7299 | |||||||
| 4968 | |||||||
| 3230 | |||||||
| Ninject 3.3.6 | 78292* | ||||||
| 60394* | 28241 | ||||||
| 20249 | 92792* | ||||||
| 68004* | 24794 | ||||||
| 18311 | 78784000* | ||||||
| 45766768* | |||||||
| 22231 | |||||||
| 19065 | |||||||
| Pure.DI 2.0.0 | 75 | ||||||
| 63 | 86 | ||||||
| 78 | 328 | ||||||
| 272 | 85 | ||||||
| 71 | |||||||
| 249 | |||||||
| 192 | |||||||
| Rezolver 2.1.0 | 520 | ||||||
| 385 | 183 | ||||||
| 145 | 669 | ||||||
| 408 | |||||||
| 9589857* | |||||||
| 5697265* | 86587* | ||||||
| 56374 | |||||||
| SimpleInjector 5.4.1 | 366 | ||||||
| 204 | 99 | ||||||
| 103 | 755 | ||||||
| 738 | 85 | ||||||
| 83 | |||||||
| 5503 | |||||||
| 4220 | |||||||
| Singularity 0.18.0 | |||||||
| 54 | |||||||
| 80 | 241 | ||||||
| 193 | |||||||
| 631 | |||||||
| 652 | |||||||
| Spring.NET 3.0.2 | 21087 | ||||||
| 16280 | |||||||
| 21268 | |||||||
| 15259 | |||||||
| Stashbox 5.11.0 | 148 | ||||||
| 181 | 108 | ||||||
| 97 | 542 | ||||||
| 509 | 74 | ||||||
| 83 | 871072* | ||||||
| 663243* | 2098 | ||||||
| 1280 | 917 | ||||||
| 643 | |||||||
| StructureMap 4.7.1 | 8697 | ||||||
| 5284 | 2271 | ||||||
| 1460 | 8399 | ||||||
| 5170 | |||||||
| 3215578* | |||||||
| 1887211* | 65269* | ||||||
| 41725 | 7859 | ||||||
| 4464 | |||||||
| Unity 5.11.10 | 9045 | ||||||
| 5814 | 9842 | ||||||
| 6443 | 17755 | ||||||
| 12048 | 3547 | ||||||
| 2046 | 147355* | ||||||
| 74313* | 61350* | ||||||
| 39009 | 56226 | ||||||
| 31096 | |||||||
| Windsor 6.0.0 | 38349 | ||||||
| 32062 | 16588 | ||||||
| 12021 | 17909 | ||||||
| 14575 | |||||||
| 252113* | |||||||
| 175868* | |||||||
| 16722 | |||||||
| 11052 | |||||||
| ZenIoc 1.0.1 | 264 | ||||||
| 195 | 276 | ||||||
| 209 | 704 | ||||||
| 488 | 314 | ||||||
| 222 | 602490* | ||||||
| 471765* | |||||||
| Zenject 8.0.0 | 15829 | ||||||
| 13135 | 9021 | ||||||
| 6513 | 17932 | ||||||
| 12687 | 3082 | ||||||
| 2428 | 22250 | ||||||
| 18595 | |||||||
| Container | Prepare And Register | Prepare And Register And Simple Resolve |
|---|---|---|
| No | 2 | |
| 2 | ||
| abioc 0.8.0 | 6327 | |
| 6556 | ||
| Autofac 7.0.1 | 359 | |
| 367 | ||
| Caliburn.Micro 1.5.2 | 55 | |
| 56 | ||
| Catel 5.12.22 | 11925 | |
| 9956 | ||
| DryIoc 4.8.5 | 56 | |
| 64 | ||
| DryIocZero 4.0.0 | 0 | |
| 1 | ||
| Dynamo 3.0.2 | 16240 | |
| 16527 | ||
| Faster.Ioc 1.0.0 | 51 | |
| 1283 | ||
| Grace 7.2.1 | 157 | |
| 966 | ||
| Lamar 8.0.1 | 2516 | |
| 3044 | ||
| LightInject 6.6.4 | 127 | |
| 2146 | ||
| Maestro 3.6.6 | 128 | |
| 144 | ||
| Mef 4.0.0.0 | 17 | |
| 2299 | ||
| Mef2 7.0.0.0 | 6114 | |
| 6957 | ||
| MicroResolver 2.3.5 | 27322 | |
| 67518 | ||
| Microsoft Extensions DependencyInjection 7.0.0 | 22 | |
| 35 | ||
| Microsoft.VisualStudio.Composition 17.6.17 | 9311 | |
| 11123 | ||
| Mugen MVVM Toolkit 6.5.0 | 15 | |
| 19 | ||
| MvvmCross 8.0.2 | 10 | |
| 16 | ||
| Ninject 3.3.6 | 134240* | |
| 112279* | ||
| Pure.DI 2.0.0 | 0 | |
| Rezolver 2.1.0 | 20835 | |
| 27706 | ||
| SimpleInjector 5.4.1 | 825 | |
| 3214 | ||
| Singularity 0.18.0 | 314 | |
| 874 | ||
| Spring.NET 3.0.2 | 15929 | |
| 17596 | ||
| Stashbox 5.11.0 | 202 | |
| 1113 | ||
| StructureMap 4.7.1 | 1325 | |
| 7389 | ||
| Unity 5.11.10 | 122 | |
| 287 | ||
| Windsor 6.0.0 | 3927 | |
| 2927 | ||
| ZenIoc 1.0.1 | 77 | |
| 964 | ||
| Zenject 8.0.0 | 199 | |
| 201 | ||
The benchmark was executed on the following machine:
CPU: Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz
Memory: 15,89GB
No open issues yet, or sync has not completed.