Comparing a simple app varieties on different DI containers.
Go to "Preferences > Annotation Processors", and check "Enable Annotation
Processing".
# Build
./gradlew clean build installDist distTar
# Run
TestRunner in common-deep/src/test/kotlin
MacBook Pro (16-inch, 2019)
Processor: 2,6 GHz 6-Core Intel Core i7
Memory: 32 GB 2667 MHz DDR4
openjdk 11.0.10 2021-01-19 LTS
OpenJDK Runtime Environment Corretto-11.0.10.9.1 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode)
DI |
Jar w/Deps Size, Mb |
⬇️ Exec time, s |
LoC |
jvm |
1.69 |
111 |
2 |
Results for 2 classes (JDK 11)
DI |
Jar w/Deps Size, Mb |
⬇️ Exec time, ms |
LoC |
kotlin-lazy |
1.69 |
118 |
16 |
baseline |
1.69 |
130 |
7 |
dagger |
1.73 |
130 |
37 |
cayennedi |
1.76 |
158 |
37 |
koin |
1.85 |
160 |
16 |
koin-reflect |
1.88 |
170 |
17 |
kodein |
2.36 |
180 |
17 |
bootique |
4.18 |
229 |
52 |
guice |
5.42 |
331 |
33 |
spring |
5.60 |
356 |
23 |
komodo |
6.41 |
392 |
17 |
spring-scan |
5.60 |
410 |
13 |
owb |
3.05 |
421 |
35 |
spring-xml |
5.60 |
430 |
19 |
springboot |
9.73 |
916 |
42 |
Results for 100 classes (JDK 11)
DI |
Jar w/Deps Size, Mb |
⬇️ Exec time, ms |
LoC |
baseline-deep |
1.83 |
142 |
107 |
kotlin-lazy-deep |
1.91 |
158 |
313 |
dagger-deep |
1.96 |
163 |
534 |
cayennedi-deep |
1.95 |
212 |
1444 |
koin-deep |
2.13 |
216 |
113 |
koin-reflect-deep |
2.51 |
241 |
114 |
bootique-deep |
4.31 |
280 |
549 |
kodein-deep |
2.92 |
284 |
114 |
guice-deep |
5.56 |
407 |
530 |
spring-deep |
5.73 |
469 |
420 |
komodo-deep |
6.64 |
531 |
114 |
spring-xml-deep |
5.72 |
559 |
319 |
owb-deep |
3.18 |
584 |
532 |
spring-scan-deep |
5.73 |
687 |
13 |
springboot-deep |
9.85 |
1054 |
439 |