JDK-8231460: Java update from 11.0.11 to 11.0.13 changes JVM code cache behavior and results in more process cpu usage and unexpected profiled nmethods memory usage

Josef Lehner home.josef.lehner at gmail.com
Wed Dec 1 15:35:57 UTC 2021


Dear OpenJDK team,

as described in this StackOverflow question, I want to reach out to you and
question whether the JVM code cache / codeheap still works as designed.
https://stackoverflow.com/questions/70086548/java-update-from-11-0-11-to-11-0-13-changes-jvm-code-cache-behavior-and-results

What we experience in our huge application is that with Java 11.0.13 and
-XX:ReservedCodeCacheSize=375m the code cache / codeheap 'profiled
nmethods' (C1 optimized, ~ 180 MB) drops after a very short time to a very
low level (less than 50 MB) and stays at this level forever while
'non-profiled nmethods' (C2 optimized) is already at its limits.
After we tripled the -XX:ReservedCodeCacheSize to 1024 MB, both areas
'profiled nmethods' and 'non-profiled nmethods' have stayed at a much
higher constant level (~ 258 MB) for over a week now instead of dropping to
less than 50 MB after 15 min (-XX:ReservedCodeCacheSize=375m) or dropping
after 3 hours (-XX:ReservedCodeCacheSize=512m).
>From my point of view as a non-expert I would expect that the C1 optimized
code does not get removed (or at least not so much) from 'profiled
nmethods' as there is no space left in 'non-profiled nmethods' to optimize
it further. What do you think?

Important changes in 11.0.12:
https://bugs.openjdk.java.net/browse/JDK-8223444 Improve CodeHeap Free
Space Management
https://bugs.openjdk.java.net/browse/JDK-8231460 Performance issue
(CodeHeap) with large free blocks

Best regards
Josef Lehner


More information about the hotspot-compiler-dev mailing list