Я пытался понять, как работает -XX:ReservedCodeCacheSize=512m
, но он не был применен при запуске Java следующим образом:
java --version -XX:ReservedCodeCacheSize=512m
Он просто устанавливается по умолчанию 48M
на x86
в этой точке :
define_pd_global(uintx, ReservedCodeCacheSize, 48*M);
А затем увеличился в 5 раз точка :
// Increase the code cache size - tiered compiles a lot more.
if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
FLAG_SET_ERGO(uintx, ReservedCodeCacheSize,
MIN2(CODE_CACHE_DEFAULT_LIMIT, (size_t)ReservedCodeCacheSize * 5));
}
вызывает пробел с кодом резервирования до 48*5 M
вместо значения, которое я настроил:
size_t cache_size = ReservedCodeCacheSize;
//...
ReservedCodeSpace rs = reserve_heap_memory(cache_size);
Сначала я понял, что ReservedCodeCacheSize
является вариантом разработки и поэтому не может быть переопределен, но он помечен как здесь , так что это не так.
Что не так и почему молча игнорируется этот параметр?