Performance benchmark
We have created a project to benchmark Genie's performance against the following Java dependency injection libraries on the market:
The result shows Genie is a very fast library:
Startup and first time fetch benchmark
Split Starting up DI containers & instantiating a dependency graph 4999 times:
-------------------------------------------------------------------------------
Feather| start: 8ms fetch: 73ms
Genie| start: 478ms fetch: 98ms (*)
Dagger| start: 46ms fetch: 130ms
Pico| start: 166ms fetch: 161ms
Guice| start: 458ms fetch: 800ms
SpringJavaConfiguration| start: 13956ms fetch: 1149ms
SpringAnnotationScanned| start: 22302ms fetch: 2738ms
Runtime bean injection benchmark
Runtime benchmark, fetch new bean for 50K times:
---------------------------------------------------------
Dagger| 28ms
Genie| 45ms (*)
Feather| 68ms
Guice| 188ms
Pico| 353ms
SpringJavaConfiguration| 1936ms
SpringAnnotationScanned| 2369ms
Runtime benchmark, fetch new bean for 5M times:
---------------------------------------------------------
Dagger| 842ms
Genie| 1043ms (*)
Feather| 1748ms
Guice| 3022ms
Pico| 13185ms
SpringJavaConfiguration| Timeout
SpringAnnotationScanned| Timeout
Runtime benchmark, fetch singleton bean for 5M times:
---------------------------------------------------------
Genie| 118ms (*)
Feather| 180ms
Pico| 225ms
SpringAnnotationScanned| 228ms
SpringJavaConfiguration| 245ms
Guice| 559ms
Dagger| 746ms
For detail information about the benchmark project, please go visit the project github repository