我试图了解-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,因此并非如此。
怎么了?为什么该选项被默默忽略?
答案 0 :(得分:2)
--version
是terminal option。 JVM标志应在终端选项之前。
尝试java -XX:ReservedCodeCacheSize=512m --version