Raw data generated by iklam on Tue Sep 30 10:14:22 AM PDT 2025 HOWTO: https://github.com/openjdk/leyden/blob/ce150637130086ad2b47916d66148007f5331a28/README.md#5-benchmarking + bash -c 'cat /proc/cpuinfo | egrep "(vendor_id)|(model name)" | head -2' vendor_id : GenuineIntel model name : Intel(R) Core(TM) i7-14700 + bash -c 'cat /proc/cpuinfo | egrep "(processor)" | tail -1' processor : 27 + bash -c 'cat /proc/meminfo | head -1' MemTotal: 63420144 kB + cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=24.04 DISTRIB_CODENAME=noble DISTRIB_DESCRIPTION="Ubuntu 24.04.1 LTS" + bash -c '$BLDJDK_HOME/bin/java --version' java 24 2025-03-18 Java(TM) SE Runtime Environment (build 24+36-3646) Java HotSpot(TM) 64-Bit Server VM (build 24+36-3646, mixed mode, sharing) + bash -c '$MAINLINE_HOME/bin/java --version' java 25 2025-09-16 LTS Java(TM) SE Runtime Environment (build 25+37-LTS-3491) Java HotSpot(TM) 64-Bit Server VM (build 25+37-LTS-3491, mixed mode, sharing) + bash -c '$PREMAIN_HOME/bin/java --version' java 26-internal 2026-03-17 Java(TM) SE Runtime Environment (build 26-internal-adhoc.iklam.le4) Java HotSpot(TM) 64-Bit Server VM (build 26-internal-adhoc.iklam.le4, mixed mode, sharing) PREMAIN_HOME: built from https://github.com/openjdk/leyden/commit/ce150637130086ad2b47916d66148007f5331a28 ------------------------------------------------------------ + bash -c 'cd helidon-quickstart-se; make bench' rm -f *.cds *.cds.code *.classlist *.jsa *~ *.log *.log.* hs_err_* *.aot *.aotconf rm -f mainline_vs_premain.csv run,mainline default,mainline custom static cds,mainline aot cache,premain aot cache 1,234,126,84,63 2,227,125,79,62 3,240,123,87,67 4,249,121,75,65 5,235,121,77,67 6,244,121,92,62 7,235,122,77,71 8,235,125,94,63 9,228,119,83,65 10,236,126,82,74 Geomean,236.22,122.88,82.78,65.80 (3.59x improvement) Stdev,6.33,2.34,6.10,3.78 Markdown snippets in mainline_vs_premain.md + bash -c 'cat helidon-quickstart-se/mainline_vs_premain.md' ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (ms, smaller is better)" 0 --> 236.22 bar [236.22, 122.88, 82.78, 65.80] ``` -----------------Normalized--------------------------------------------- ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (normalized, smaller is better)" 0 --> 1000 bar [1000, 520, 350, 279] ``` ------------------------------------------------------------ + bash -c 'cd javac_bench; make bench' rm -f *.class *.jar tmp.txt rm -f mainline_vs_premain.csv run,mainline default,mainline custom static cds,mainline aot cache,premain aot cache 1,461,376,264,212 2,477,361,275,211 3,475,373,269,206 4,458,386,264,209 5,471,362,276,227 6,468,358,260,208 7,464,374,285,211 8,464,362,262,213 9,468,371,261,210 10,485,359,266,213 Geomean,469.04,368.10,268.09,211.93 (2.21x improvement) Stdev,7.73,8.72,7.67,5.42 Markdown snippets in mainline_vs_premain.md + bash -c 'cat javac_bench/mainline_vs_premain.md' ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (ms, smaller is better)" 0 --> 469.04 bar [469.04, 368.10, 268.09, 211.93] ``` -----------------Normalized--------------------------------------------- ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (normalized, smaller is better)" 0 --> 1000 bar [1000, 785, 572, 452] ``` ------------------------------------------------------------ + bash -c 'cd micronaut-first-app; make bench' rm -f *.cds *.cds.code *.classlist *.jsa *~ *.log *.log.* hs_err_* *.aot *.aotconf rm -f mainline_vs_premain.csv run,mainline default,mainline custom static cds,mainline aot cache,premain aot cache 1,317,158,116,116 2,322,161,140,104 3,309,153,119,110 4,325,141,116,97 5,315,151,122,99 6,323,160,132,111 7,315,148,119,110 8,308,150,129,118 9,317,153,116,104 10,316,153,119,124 Geomean,316.66,152.69,122.57,109.00 (2.91x improvement) Stdev,5.27,5.65,7.76,8.09 Markdown snippets in mainline_vs_premain.md + bash -c 'cat micronaut-first-app/mainline_vs_premain.md' ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (ms, smaller is better)" 0 --> 316.66 bar [316.66, 152.69, 122.57, 109.00] ``` -----------------Normalized--------------------------------------------- ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (normalized, smaller is better)" 0 --> 1000 bar [1000, 482, 387, 344] ``` ------------------------------------------------------------ + bash -c 'cd quarkus-getting-started; make bench' rm -f *.cds *.cds.code *.classlist *.jsa *~ *.log *.log.* hs_err_* *.aot *.aotconf rm -f mainline_vs_premain.csv run,mainline default,mainline custom static cds,mainline aot cache,premain aot cache 1,347,169,143,114 2,343,180,148,117 3,328,170,158,128 4,341,167,140,107 5,350,161,136,115 6,351,176,138,117 7,347,172,137,103 8,340,174,135,112 9,352,178,158,129 10,334,168,140,118 Geomean,343.22,171.41,143.08,115.75 (2.97x improvement) Stdev,7.38,5.41,8.16,7.68 Markdown snippets in mainline_vs_premain.md + bash -c 'cat quarkus-getting-started/mainline_vs_premain.md' ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (ms, smaller is better)" 0 --> 343.22 bar [343.22, 171.41, 143.08, 115.75] ``` -----------------Normalized--------------------------------------------- ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (normalized, smaller is better)" 0 --> 1000 bar [1000, 499, 417, 337] ``` ------------------------------------------------------------ + bash -c 'cd spring-boot-getting-started; make bench' rm -f *.cds *.cds.code *.classlist *.jsa *~ *.log *.log.* hs_err_* tmp.txt *.aot *.aotconf rm -f mainline_vs_premain.csv run,mainline default,mainline custom static cds,mainline aot cache,premain aot cache 1,493,244,163,114 2,508,246,166,148 3,493,244,164,115 4,493,246,163,117 5,498,242,162,120 6,494,247,167,123 7,504,241,165,112 8,496,247,173,119 9,504,251,166,127 10,492,242,163,113 Geomean,497.47,244.98,165.17,120.41 (4.13x improvement) Stdev,5.48,2.86,3.03,10.10 Markdown snippets in mainline_vs_premain.md + bash -c 'cat spring-boot-getting-started/mainline_vs_premain.md' ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (ms, smaller is better)" 0 --> 497.47 bar [497.47, 244.98, 165.17, 120.41] ``` -----------------Normalized--------------------------------------------- ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (normalized, smaller is better)" 0 --> 1000 bar [1000, 492, 332, 242] ``` ------------------------------------------------------------ + bash -c 'cd spring-petclinic; make bench' rm -f spring-petclinic.* *.aot *.aotconf rm -f mainline_vs_premain.csv run,mainline default,mainline custom static cds,mainline aot cache,premain aot cache 1,2102,1264,1165,678 2,2174,1237,1126,680 3,2139,1256,1140,679 4,2158,1428,1288,673 5,2320,1550,1358,684 6,2259,1470,1371,685 7,2415,1460,1336,671 8,2309,1452,1342,674 9,2346,1427,1348,677 10,2312,1418,1337,668 Geomean,2251.24,1392.48,1277.62,676.88 (3.33x improvement) Stdev,98.54,100.60,92.63,5.19 Markdown snippets in mainline_vs_premain.md + bash -c 'cat spring-petclinic/mainline_vs_premain.md' ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (ms, smaller is better)" 0 --> 2251.24 bar [2251.24, 1392.48, 1277.62, 676.88] ``` -----------------Normalized--------------------------------------------- ```mermaid --- config: theme: "forest" xyChart: chartOrientation: horizontal height: 300 --- xychart-beta x-axis "variant" ["mainline default", "mainline custom static cds", "mainline aot cache", "premain aot cache"] y-axis "Elapsed time (normalized, smaller is better)" 0 --> 1000 bar [1000, 619, 568, 301] ```