我试图了解-XX:ReservedCodeCacheSize=512m
的工作原理,但在运行Java时未按如下方法应用它:java --version -XX:ReservedCodeCacheSize=512m
只需在此point上将48M
设置为默认的x86
:
define_pd_global(uintx, ReservedCodeCacheSize, 48*M);
然后在该point处增加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));
}
导致reservation code space变为
48*5 M
而不是我配置的值:size_t cache_size = ReservedCodeCacheSize;
//...
ReservedCodeSpace rs = reserve_heap_memory(cache_size);
我首先虽然说
ReservedCodeCacheSize
是开发选项,因此不允许重写,但是它被标记为产品here,所以不是这种情况。怎么了?为什么该选项被默默忽略?
最佳答案
--version
是terminal option。 JVM标志应在终端选项之前。
尝试java -XX:ReservedCodeCacheSize=512m --version