RFR: 8377597: [Leyden] Improve peak performance when AOT code is used

Vladimir Kozlov kvn at openjdk.org
Wed Feb 11 10:02:34 UTC 2026


Currently some AOT code could be used for long time after startup. It could case peak performance regression because AOT code is conservative and have several restrictions on optimizations it can do.

Introduce AOT code entry counter to request JIT compilation and replace AOT code after some threshold is reached. Use invocation count of C2 code during training run as threshold for AOT code replacement during production run.

Here some results running JavacBanch JMH benchmark on linux-x64 (numactl -C 0-3 -m 0`)


java -jar javac.jar -f 1 -bm ss -wi 0 -i 100 JavacBench.helloWorld1k


<img width="781" height="466" alt="Screenshot 2026-02-10 at 1 25 30 PM" src="https://github.com/user-attachments/assets/58d973bf-9881-45d9-acb8-40b18ca02a06" />


<img width="486" height="178" alt="Screenshot 2026-02-10 at 1 22 24 PM" src="https://github.com/user-attachments/assets/19fff702-2302-4e43-a093-5c6981a069ba" />

...
<img width="479" height="153" alt="Screenshot 2026-02-10 at 1 24 09 PM" src="https://github.com/user-attachments/assets/72e9d81d-bce2-482c-aaea-a32a192a8899" />

-------------

Commit messages:
 - [Leyden] Improve peak performance when AOT code is used

Changes: https://git.openjdk.org/leyden/pull/110/files
  Webrev: https://webrevs.openjdk.org/?repo=leyden&pr=110&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8377597
  Stats: 223 lines in 17 files changed: 213 ins; 2 del; 8 mod
  Patch: https://git.openjdk.org/leyden/pull/110.diff
  Fetch: git fetch https://git.openjdk.org/leyden.git pull/110/head:pull/110

PR: https://git.openjdk.org/leyden/pull/110


More information about the leyden-dev mailing list