Add jdk27-perf: the same Spring Boot service measured on JDK 25 and JDK 27

Live heap, throughput, p99 and startup across four configurations, including opt-in and opt-out of
compact object headers.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WzVQ6zFh9cuLPj9RSbRH8U
This commit is contained in:
2026-10-12 17:30:55 +00:00
co-authored by Claude Sonnet 5.5
parent fc05eed4b5
commit d565be93c6
13 changed files with 388 additions and 1 deletions
+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Usage: run-one.sh <java-home> <label> [jvm args...]
# One cold start, then 15 s warmup + 30 s measured load, then a /stats snapshot. One result block.
set -u
JH=$1; LABEL=$2; shift 2
HERE="$(cd "$(dirname "$0")" && pwd)"
JAR="$HERE/../target/jdk27-perf-1.0.0.jar"
PORT=${PORT:-18081}
CLIENT=${JDK_CLIENT:-$JH}
t0=$(date +%s%N)
"$JH/bin/java" "$@" -jar "$JAR" --server.port=$PORT --spring.main.banner-mode=off \
--logging.level.root=WARN > /dev/null 2>&1 &
PID=$!
until [ "$(curl -s -o /dev/null -m 2 -w '%{http_code}' "localhost:$PORT/stats")" = 200 ]; do sleep 0.02; done
t1=$(date +%s%N)
echo "== $LABEL"
echo "startup_ms=$(( (t1 - t0) / 1000000 ))"
"$CLIENT/bin/java" "$HERE/Load.java" $PORT 15 30 ${THREADS:-4} 2>&1 | grep -v Picked
curl -s "localhost:$PORT/stats"; echo
kill $PID 2>/dev/null; wait $PID 2>/dev/null