Portable Class Library Ioc that is fast and works in
- .Net Framework 4+
- Windows Store Apps
- Windows Phone 8.1
OmnIoC is very much in development and should not be seen as production-ready
Install
PM> Install-Package OmnIoC.Portable
Current features
- Nongeneric register/resolve (set/get)
- Generic register/resolve (set/get) fast
- Named registrations/resolves
- Resolve multiple registrations of type as IEnumerable< T >
Planned features
- Attribute based registration/discovery
- Auto resolve constructor parameters
The values are from using this performance test with the latest versions of all Ioc's and added adapter for OmnIoC. Also modified adapters to use generics where possible since OmnIoC is generic in it's core and not be unfair to other Iocs.
Here are all comparisons / stats including Iocs that didn't reach low enough values to be included in the graph
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.
Lower is better and bold values indicate best in test
Container | Singleton | Transient | Combined | Complex |
---|---|---|---|---|
OmnIoC 0.0.18 | 29 37 |
40 56 |
54 80 |
102 82 |
Caliburn.Micro 1.5.2 | 453 312 |
549 330 |
1508 881 |
6460 3927 |
Catel 3.9.0 | 375 385 |
3620 4131 |
11233 10056 |
24933 28175 |
DryIoc 1.3.1 | 61 56 |
70 70 |
84 95 |
109 92 |
Dynamo 3.0.2.0 | 113 91 |
116 93 |
221 153 |
586 368 |
fFastInjector 0.8.1 | 96 76 |
152 99 |
191 139 |
270 173 |
Funq 1.0.0.0 | 132 95 |
169 135 |
398 276 |
1046 599 |
Grace 2.3.10 | 201 138 |
338 246 |
779 462 |
1830 1368 |
Griffin 1.1.2 | 289 192 |
299 208 |
691 433 |
1834 1067 |
HaveBox 2.0.0 | 69 70 |
77 73 |
105 94 |
136 110 |
Hiro 1.0.4.41795 | 164 112 |
162 113 |
194 140 |
245 166 |
IfInjector 0.8.1 | 98 91 |
146 113 |
173 140 |
222 155 |
LightInject 3.0.1.7 | 60 55 |
70 63 |
83 93 |
104 92 |
LinFu 2.3.0.41559 | 3134 1771 |
17181 12464 |
44774 31226 |
118910 76547 |
Maestro 1.4.0 | 282 205 |
329 241 |
961 624 |
2806 1591 |
Mef 4.0.0.0 | 22914 12557 |
37098 22722 |
56772 39858 |
113138 124159 |
Mef2 1.0.27.0 | 229 150 |
240 167 |
311 214 |
526 323 |
MicroSliver 2.1.6.0 | 191 219 |
800 537 |
2455 1421 |
6945 4539 |
Mugen 3.5.1 | 439 429 |
705 567 |
1974 1531 |
7592 5958 |
Munq 3.1.6 | 108 89 |
158 113 |
503 299 |
1620 875 |
Ninject 3.2.2.0 | 4545 2952 |
14408 11068 |
38996 27247 |
128918 87802 |
Petite 0.3.2 | 4770 2864 |
3382 2175 |
4299 2871 |
5222 3430 |
SimpleInjector 2.5.2 | 85 73 |
115 86 |
130 110 |
192 147 |
Spring.NET 1.3.2 | 934 722 |
12087 7253 |
34341 20719 |
83878 50552 |
StructureMap 3.1.0.133 | 2425 2820 |
2102 1992 |
5998 5945 |
14671 14558 |
StyleMVVM 3.1.5 | 563 329 |
610 369 |
860 520 |
1497 956 |
TinyIoC 1.2 | 390 332 |
1794 1124 |
7584 4914 |
30510 18941 |
Unity 3.5.1404.0 | 2273 1399 |
3475 2160 |
9667 5899 |
28905 18180 |
Windsor 3.3.0 | 530 336 |
1765 1052 |
5512 3627 |
16869 10077 |
More readme coming soon ™