Skip to content

Commit 0c22d16

Browse files
authored
Spring boot 4 comparisons (#80)
* Prepare for spring3 vs spring4 - Update `config.springboot.version` to `config.springboot3.version`. - Rename related native build options and CLI parameters to emphasize Spring Boot 3.x usage. - Adjust scripts to reflect the updated naming structure across perf-lab workflow. * Adding spring boot 4 Fixes #74 * Adding spring boot 4 Fixes #74 * Adding spring boot 4 Fixes #74
1 parent f4632ad commit 0c22d16

28 files changed

+1586
-116
lines changed

.github/workflows/main.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ jobs:
4141
- '25'
4242
app:
4343
- springboot3
44+
- springboot4
4445
- quarkus3
4546
- quarkus3-spring-compatibility
4647
name: "[jvm-build-test-java${{ matrix.java }}]: ${{ matrix.app }}"
@@ -70,6 +71,9 @@ jobs:
7071
springboot3)
7172
TARGET_DIR="${{ matrix.app }}/target/springboot3.jar"
7273
;;
74+
springboot4)
75+
TARGET_DIR="${{ matrix.app }}/target/springboot4.jar"
76+
;;
7377
quarkus3)
7478
TARGET_DIR="${{ matrix.app }}/target/quarkus-app/quarkus-run.jar"
7579
;;

pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@
1212
<module>quarkus3</module>
1313
<module>quarkus3-spring-compatibility</module>
1414
<module>springboot3</module>
15+
<module>springboot4</module>
1516
</modules>
16-
</project>
17+
</project>

scripts/perf-lab/main.yml

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,15 @@ states:
88
config.jvm.graalvm.version: 25.0.1-graalce
99

1010
config.quarkus.version: #3.28.3
11-
config.springboot.version: #3.5.6
11+
config.springboot3.version: #3.5.6
12+
config.springboot4.version: #4.0.0
1213

1314
config.jvm.memory: #-Xmx128m
1415
config.jvm.args: #-XX:+UseNUMA
1516

1617
config.quarkus.native_build_options: #-Dquarkus.native.native-image-xmx=<maximum_memory>
17-
config.springboot.native_build_options:
18+
config.springboot3.native_build_options:
19+
config.springboot4.native_build_options:
1820

1921
config.resources.cpu.app: 0-3
2022
config.resources.cpu.db: 4-6
@@ -39,7 +41,7 @@ states:
3941
PROFILER_JVM_ARGS:
4042
BASE_JAVA_CMD: ${{APP_CMD_PREFIX}} java ${{config.jvm.memory}} ${{config.jvm.args}} ${{PROFILER_JVM_ARGS}}
4143
TESTS : [test-build, measure-build-times, measure-time-to-first-request, measure-rss, run-load-test]
42-
RUNTIMES: [quarkus3-jvm, quarkus3-native, spring3-jvm, spring3-jvm-aot, spring3-native]
44+
RUNTIMES: [quarkus3-jvm, quarkus3-native, spring3-jvm, spring3-jvm-aot, spring3-native, spring4-jvm, spring4-jvm-aot, spring4-native]
4345
TARGET_URL: http://localhost:8080/fruits
4446
QUARKUS-PLATFORM-ARTIFACT-ID: quarkus-bom
4547
PROJ_REPO_NAME: spring-quarkus-perf-comparison
@@ -64,23 +66,44 @@ states:
6466
type: jvm
6567
dir: ${{SPRING3_BOOT_DIR}}
6668
updateScript: update-spring-boot-version
67-
updateVersion: ${{config.springboot.version}}
69+
updateVersion: ${{config.springboot3.version}}
6870
buildCmd: "./mvnw clean package -DskipTests"
6971
runCmd: "${{BASE_JAVA_CMD}} -jar ${{SPRING3_BOOT_DIR}}/target/springboot3.jar"
7072
- name: spring3-jvm-aot
7173
type: jvm
7274
dir: ${{SPRING3_BOOT_DIR}}
7375
updateScript: update-spring-boot-version
74-
updateVersion: ${{config.springboot.version}}
76+
updateVersion: ${{config.springboot3.version}}
7577
buildCmd: "./mvnw clean compile spring-boot:process-aot package -DskipTests"
7678
runCmd: "${{BASE_JAVA_CMD}} -Dspring.aot.enabled=true -jar ${{SPRING3_BOOT_DIR}}/target/springboot3.jar"
7779
- name: spring3-native
7880
type: native
7981
dir: ${{SPRING3_BOOT_DIR}}
8082
updateScript: update-spring-boot-version
81-
updateVersion: ${{config.springboot.version}}
82-
buildCmd: "./mvnw clean -Pnative -DskipTests native:compile package ${{config.springboot.native_build_options}}"
83+
updateVersion: ${{config.springboot3.version}}
84+
buildCmd: "./mvnw clean -Pnative -DskipTests native:compile package ${{config.springboot3.native_build_options}}"
8385
runCmd: "${{APP_CMD_PREFIX}} ${{SPRING3_BOOT_DIR}}/target/springboot3 ${{config.jvm.memory}}"
86+
- name: spring4-jvm
87+
type: jvm
88+
dir: ${{SPRING4_BOOT_DIR}}
89+
updateScript: update-spring-boot-version
90+
updateVersion: ${{config.springboot4.version}}
91+
buildCmd: "./mvnw clean package -DskipTests"
92+
runCmd: "${{BASE_JAVA_CMD}} -jar ${{SPRING4_BOOT_DIR}}/target/springboot4.jar"
93+
- name: spring4-jvm-aot
94+
type: jvm
95+
dir: ${{SPRING4_BOOT_DIR}}
96+
updateScript: update-spring-boot-version
97+
updateVersion: ${{config.springboot4.version}}
98+
buildCmd: "./mvnw clean compile spring-boot:process-aot package -DskipTests"
99+
runCmd: "${{BASE_JAVA_CMD}} -Dspring.aot.enabled=true -jar ${{SPRING4_BOOT_DIR}}/target/springboot4.jar"
100+
- name: spring4-native
101+
type: native
102+
dir: ${{SPRING4_BOOT_DIR}}
103+
updateScript: update-spring-boot-version
104+
updateVersion: ${{config.springboot4.version}}
105+
buildCmd: "./mvnw clean -Pnative -DskipTests native:compile package ${{config.springboot4.native_build_options}}"
106+
runCmd: "${{APP_CMD_PREFIX}} ${{SPRING4_BOOT_DIR}}/target/springboot4 ${{config.jvm.memory}}"
84107

85108
scripts:
86109
update-state:
@@ -90,8 +113,9 @@ scripts:
90113
- set-state: RUN.PROJ_REPO_DIR ${{REPO_DIR}}/${{PROJ_REPO_NAME}}
91114
- set-state: RUN.SCRIPTS_DIR ${{PROJ_REPO_DIR}}/scripts/perf-lab
92115
- set-state: RUN.HELPER_SCRIPTS_DIR ${{SCRIPTS_DIR}}/scripts
93-
- set-state: RUN.SPRING3_BOOT_DIR ${{PROJ_REPO_DIR}}/springboot3
94-
- set-state: RUN.QUARKUS3_DIR ${{PROJ_REPO_DIR}}/quarkus3
116+
- set-state: RUN.SPRING3_BOOT_DIR ${{REPO_DIR}}/${{PROJ_REPO_NAME}}/springboot3
117+
- set-state: RUN.SPRING4_BOOT_DIR ${{REPO_DIR}}/${{PROJ_REPO_NAME}}/springboot4
118+
- set-state: RUN.QUARKUS3_DIR ${{REPO_DIR}}/${{PROJ_REPO_NAME}}/quarkus3
95119
- set-state: RUN.ASYNC_PROFILER_DIR ${{BASE_DIR}}/${{ASYNC_PROFILER}}
96120

97121
output-vars:
@@ -102,6 +126,7 @@ scripts:
102126
"REPO_DIR: ${{REPO_DIR}}"
103127
"SCRIPTS_DIR: ${{SCRIPTS_DIR}}"
104128
"SPRING3_BOOT_DIR: ${{SPRING3_BOOT_DIR}}"
129+
"SPRING4_BOOT_DIR: ${{SPRING4_BOOT_DIR}}"
105130
"QUARKUS3_DIR : ${{QUARKUS3_DIR}}"
106131
"RUNTIMECMDS: ${{RUNTIMECMDS}}"
107132

0 commit comments

Comments
 (0)