java - 为什么 -XX:ReservedCodeCacheSize 没有被应用?
问题描述
我试图了解它是如何-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
是一个开发选项,因此不允许被覆盖,但它在这里被标记为产品,所以情况并非如此。
出了什么问题,为什么该选项被默默忽略?
解决方案
--version
是一个终端选项。JVM 标志应该在终端选项之前。
尝试java -XX:ReservedCodeCacheSize=512m --version
推荐阅读
- regex - 多个字符的正则表达式匹配
- amazon-s3 - aws s3 cp 将文件下载到匹配文件名的本地
- java - 可选或默认的泛型参数
- javascript - 从 Javascript 中的 HTML 表单获取数据总是产生字符串?
- kotlin - 有没有优雅的方法可以在 kotlin 和箭头中将 List 变成 NonEmptyList?
- reactjs - 反应原生点击突出显示的单词
- performance-testing - JMETER 4. 0 | JMeter 分布式负载测试 | jp@gc - 步进线程组 | 报告
- php - laravel 护照模块中个人访问令牌的过期时间
- android - 在密钥库 keystore.jks 中找不到别名为“foo”的密钥
- swift - 无法取消选择 DLRadioButton 单选按钮