Add jdk27-memory: compact object headers and G1-everywhere on a Spring Boot service

Spring Boot 4.1.1 catalog service measured on JDK 25, 26 and 27: live heap 320 MB to 273 MB with compact headers, per-class bytes per instance, container-sizing sweeps with real cgroup limits, 1-CPU Serial vs G1 with Native Memory Tracking, removed flags (MaxRAM, UseCompressedClassPointers), and a kernel OOM-kill check. Outputs in jdk27-memory/output.

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 15:09:55 +00:00
parent e189da79ba
commit e83c9949d8
29 changed files with 1041 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
== bytes per instance (= #bytes / #instances) from jcmd GC.class_histogram after loading 2,000,000 products
class JDK 26 default JDK 27 default JDK 27 opt-out
com.ankurm.memory.Product 40.0 32.0 40.0
java.util.HashMap$Node 32.0 24.0 32.0
java.lang.Long 24.0 16.0 24.0
java.lang.String 24.0 24.0 24.0
[B 32.7 32.6 32.7
== total bytes of those five classes
jdk26-default 309088088 bytes (294.8 MB)
jdk27-default 260853264 bytes (248.8 MB)
jdk27-optout 309272896 bytes (294.9 MB)