Add aot-cache module: the JDK 25 AOT cache on Spring Boot 4.1 vs AppCDS, Spring AOT and GraalVM native

A Spring Boot 4.1.1 order service started 12 ways (plain and extracted jar, Spring AOT output, AppCDS, AOT cache trained with and without traffic, JDK 27, native image), ten interleaved rounds each, with first-request latency; 24 cache-mismatch cases; Docker layer arithmetic. Transcripts are in output/ (no docs/ folder).

Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01TF9JWFvJSNm6HVzswzZU5a
This commit is contained in:
Claude
2026-09-24 16:44:16 +00:00
parent fa4205f631
commit 3e2029ab3a
30 changed files with 1023 additions and 1 deletions
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Where the JDKs and GraalVM live. Override with environment variables; nothing else is hard-coded.
: "${JDK25:=/tmp/tools/j25/jdk-25.0.4.1+1}"
: "${JDK27:=/tmp/tools/j27/jdk-27+35}"
: "${GRAALVM:=$(ls -d /tmp/tools/graal/graalvm-community* 2>/dev/null | head -1)}"
export JDK25 JDK27 GRAALVM
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
WORK="$ROOT/work" # generated jars, caches and logs (git-ignored)
OUT="$ROOT/output" # transcripts that the article quotes (committed)
export ROOT WORK OUT
# Maven may need proxy/trust-store options that must not leak into the JVM runs being measured.
MVN_JTO="${JAVA_TOOL_OPTIONS:-}"
unset JAVA_TOOL_OPTIONS JDK_JAVA_OPTIONS _JAVA_OPTIONS
mvn_run() { JAVA_TOOL_OPTIONS="$MVN_JTO" "$@"; }