jmap java opts_java-HotSpot JVM选项/ jmap输出

我希望这会引起更多关注……确实您是对的(这不是答案-但是评论太久了)

当我做:

java -XX:+PrintFlagsFinal | grep SurvivorRatio

uintx InitialSurvivorRatio = 8

显然这是8.但是在测试时,它的表现更像是6(我无法重现您在jdk-8中看到的巨大差异).

这是与-Xmx2048m -Xms2048m一起运行时的相关部分

PS Young Generation

Eden Space:

capacity = 537395200 (512.5MB)

....

From Space:

capacity = 89128960 (85.0MB)

....

To Space:

capacity = 89128960 (85.0MB)

那是:

512/85 = 6

一旦我使用相同的-Xmx2048m -Xms2048m运行了相同的代码,但要添加默认值:-XX:SurvivorRatio = 8;输出为:

PS Young Generation

Eden Space:

capacity = 573046784 (546.5MB)

....

From Space:

capacity = 71303168 (68.0MB)

....

To Space:

capacity = 71303168 (68.0MB)

546.5 / 68 = 8.

对-Xmn的设置也是如此.这很奇怪!我尚未更改SurvivorRatio的值-仍与默认值相同8.

似乎在内部有一些检查是否设置了与SurvivorRatio的计算有关的标志,并应用了不同的策略(我希望我知道这些的内在因素,但没有运气).

和男孩!我试图找到这些吗?我确实找到了一些暗示这一点的东西,但并没有直接给出答案,例如this或this(尤其是评论).我做了:

grep -R "SurvivorRatio" .

在本地热点资源中,仍然无法暗示正在发生的所有结果.

我目前唯一的逻辑解释是,除非指定了与SurvivorRatio有关的任何参数,否则它会被保留.将选择一个默认值(不一定是java -XX:PrintFlagsFinal报告的默认值),而是中间的某个值,与之接近.如果是这种情况,则应在文档中明确指定;否则,在我的世界中,这是一个很小的文档错误.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值