为什么-XX:ReservedCodeCacheSize无法应用?

时间:2019-06-19 19:52:36

标签: java jvm hotspot

我试图了解-XX:ReservedCodeCacheSize=512m的工作原理,但在按​​如下方式运行Java时并没有得到应用:

java --version -XX:ReservedCodeCacheSize=512m

只需在此point48M上将其设置为默认的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 space48*5 M而不是我配置的值:

size_t cache_size         = ReservedCodeCacheSize;
//...
ReservedCodeSpace rs = reserve_heap_memory(cache_size);

我首先将ReservedCodeCacheSize作为开发选项,因此不允许其被覆盖,但是我将其标记为产品here,因此并非如此。

怎么了?为什么该选项被默默忽略?

1 个答案:

答案 0 :(得分:2)

--versionterminal option。 JVM标志应在终端选项之前。

尝试java -XX:ReservedCodeCacheSize=512m --version