Few words about projects:
- Micronaut - Micronaut with dependencies: Web, JPA, Lombok, Validations
- Spring - Spring Boot with dependencies: Web, JPA, Lombok, Validations
- Micronaut_Mongo - Micronaut with dependencies: Web, Mongo (standard driver, not reactive), Lombok, Validations
- Spring_Mongo - Spring Boot with dependencies: Web, Mongo, Lombok, Validations
Prerequisites: MongoDB
A few simple endpoints have been created in the projects so that the tests are done on something more than "hello-world example". In each app context are 180-220 beans.
Build using:
mvn clean install
Run using:
java -jar path-to-jar
Ubuntu on private laptop
Intel Core i7-8550U, 32GB RAM, SSD
Micronaut | Spring | Micronaut_Mongo | Spring_Mongo | |
---|---|---|---|---|
build time | ~8s | ~7s | ~8s | ~7s |
startup time | ~3s | ~6-8s | ~1s | ~5s |
heap size | ~350MB | ~460MB | ~170MB | ~320MB |
used heap | ~110MB | ~280MB | ~65MB | ~160MB |
Jenkins
Intel Xeon E5-2640 v2 @ 2.00GHz, 16GB RAM, HDD
Micronaut | Spring | Micronaut_Mongo | Spring_Mongo | |
---|---|---|---|---|
build time | ~14s | ~6s | ~7s | ~6s |
In each app context are circa 1200 beans.
If you want check exactly number, change property beans.counter
(in application.properties
for Spring and application.yml
for Micronaut) to true
.
Ubuntu on private laptop
Intel Core i7-8550U, 32GB RAM, SSD
Micronaut | Spring | Micronaut_Mongo | Spring_Mongo | |
---|---|---|---|---|
build time | ~25s | ~14s | ------ | ------ |
startup time | ~6s | ~16s | ------ | ------ |
heap size | ~500MB | ~590MB | ------ | ------ |
used heap | ~130MB | ~300MB | ------ | ------ |
Jenkins
Intel Xeon E5-2640 v2 @ 2.00GHz, 16GB RAM, HDD
Micronaut | Spring | Micronaut_Mongo | Spring_Mongo | |
---|---|---|---|---|
build time | ~28s | ~9s | ------ | ------ |
Prerequisites: Scala
Go to gatling-performance-tests
and run all simulations:
mvn gatling:test
Only for Spring Boot:
mvn gatling:test -Dgatling.simulationClass=simulations.SpringSimulation
Only for Micronaut:
mvn gatling:test -Dgatling.simulationClass=simulations.MicronautSimulation
Only for Mongo Spring Boot:
mvn gatling:test -Dgatling.simulationClass=simulations.MongoSpringSimulation
Only for Mongo Micronaut:
mvn gatling:test -Dgatling.simulationClass=simulations.MongoMicronautSimulation
We use Lusk to generate some example beans for apps.
Generate 1000 beans in generated
package:
lusk -c1000 -fmicronaut -p "pl.altkomsoftware.micronaut.perftest.generated" [path-to-repo]\micronaut-1-1-0
lusk -c1000 -fspring -p "pl.altkomsoftware.spring.perftest.generated" [path-to-repo]\spring-boot-2-1-4
- Create WebFlux Spring version