根据文件,XX:InitiatingHeapOccupancyPercent
设置触发标记周期的Java堆占用阈值.默认占用率是整个Java堆的45%.
在我目前的环境中,这种情况不会发生.
我的G1垃圾收集配置如下
-Xms25000m
-Xmx25000m
-XX:+UseG1GC
-XX:MaxGCPauseMillis=1000
-XX:GCTimeRatio=99
-XX:InitiatingHeapOccupancyPercent=70
-XX:MaxTenuringThreshold=8
-XX:+UnlockExperimentalVMOptions
-XX:G1MixedGCCountTarget=16
-XX:G1OldCSetRegionThresholdPercent=3
-XX:G1NewSizePercent=30
-XX:G1RSetUpdatingPauseTimePercent=5
Run Code Online (Sandbox Code Playgroud)
使用25g堆和XX:InitiatingHeapOccupancyPercent70%堆时,您会期望在18g被占用时开始标记周期.我正在拖尾垃圾收集日志,但这不会发生.
这是一个摘录:
{Heap before GC invocations=592 (full 0):
garbage-first heap total 25600000K, used 22802164K [0x00000001a5800000, 0x00000001a60061a8, 0x00000007c0000000)
region size 8192K, 1526 young (12500992K), 25 survivors (204800K)
Metaspace used 37386K, capacity 37948K, committed 38144K, reserved 1083392K
class space used 3948K, capacity 4080K, committed 4096K, reserved 1048576K
2016-04-20T22:06:38.272+0000: 4213.406: [GC pause (GCLocker Initiated GC) (young)
Desired survivor size 801112064 bytes, new …Run Code Online (Sandbox Code Playgroud)