Comparing a simple app varieties on different DI containers.
Go to "Preferences > Annotation Processors", and check "Enable Annotation Processing".
# Build (can't compare build times, as module ordering affects the results)
mvn clean package
find . -name '*.jar' |xargs ls -l |grep -v original |grep -v common
time java -jar ./bootique/target/bootique-*.jar
time java -jar ./cayennedi/target/cayennedi-*.jar
time java -jar ./dagger/target/dagger-*.jar
time java -jar ./guice/target/guice-*.jar
time java -jar ./owb/target/owb-*.jar
time java -jar ./spring/target/spring-*.jar
time java -jar ./springboot/target/springboot-*.jar
MacBook Pro 2021 M1, 16GB RAM, OpenJDK Temurin-21+35
DI | Jar w/Deps Size, KB | ⬇️ Exec time, ms |
---|---|---|
Dagger | 58 | 90 |
Cayenne DI | 71 | 105 |
Bootique | 2894 | 157 |
Guice | 3827 | 204 |
OpenWebBeans | 1632 | ? (failures) |
Spring | 4800 | 221 |
Spring Boot | 10094 | 743 |