У меня есть java-приложение, работающее в докере с флагами на OpenJDK8:
-XX:+UseContainerSupport -XX:MaxRAMPercentage=80.0 -XX:NativeMemoryTracking=summary
и я заметил, что выделение памяти в кэше кода, о котором сообщает инструмент отслеживания собственной памяти, превышает 240MB (значение по умолчанию ReservedCodeCacheSize):
jcmd 1 VM.native_memory summary | grep -i code
- Code (reserved=260013KB, committed=60465KB)
который является ~ 254MB зарезервированной памятью. Вот печатный флаг и версия Java:
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version | grep -i reserved
uintx ReservedCodeCacheSize = 251658240 {pd product}
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
Мой вопрос в том, является ли это ожидаемым поведением? Если да, то можно ли рассчитать фактический предел максимального размера кеша кода?
Благодарность!