MinHeapFreeRatio
- 与Xminf等价,参数用来设置堆空间最小空闲比例,默认值是 40。当堆空间的空闲内存小于这个数值时,JVM 便会扩展堆空间。
MaxHeapFreeRatio
- 与Xmaxf等价,参数用来设置堆空间最大空闲比例,默认值是 70。当堆空间的空闲内存大于这个数值时,便会压缩堆空间,得到一个较小的堆。
-
MinHeapFreeRatio和MaxHeapFreeRatio都是一个百分比,所以范围是0~100
-
MinHeapFreeRatio和MaxHeapFreeRatio在不同的GC算法里,它作用的范围不一样,比如G1作用于整个Heap,而SerialGC/Paralle GC/CMS GC作用在老生代
-
MinHeapFreeRatio主要是决定GC之后相关的堆的有效内存到底要不要扩大,如果GC之后相关的堆的有效内存空闲的比例比MinHeapFreeRatio这个参数小,那相关的堆的有效内存就可能要扩容一下
-
MaxHeapFreeRatio主要决定GC之后相关的堆的有效内存是否有必要进行缩容,如果GC之后相关的堆的有效内存的空闲的比例比MaxHeapFreeRatio这个参数大,那么就对相关的堆的有效内存可能会进行缩容
-
默认情况下MinHeapFreeRatio=40,MaxHeapFreeRatio=70,如果是PS GC,在默认开启自适应模式情况下,MinHeapFreeRatio=0,MaxHeapFreeRatio=100
-
CMS GC下如果没有指定老生代固定使用率触发CMS GC的阈值,那么MinHeapFreeRatio配合CMSTriggerRatio(默认80)参数会计算出触发CMS GC的老生代使用率阈值,具体算法是((100 - MinHeapFreeRatio) + CMSTriggerRatio * MinHeapFreeRatio) / 100.0) / 100.0
-
当
-Xmx
和-Xms
相等时,-XX:MinHeapFreeRatio
和-XX:MaxHeapFreeRatio
两个参数无效。
Xminf
- 与MinHeapFreeRatio等价,参数用来设置堆空间最小空闲比例,默认值是 40。当堆空间的空闲内存小于这个数值时,JVM 便会扩展堆空间。
- Xminf和MinHeapFreeRatio是等价的,如
-Xminf0.4
等价于-XX:MinHeapFreeRatio=40
Xmaxf
- 与MaxHeapFreeRatio等价,参数用来设置堆空间最大空闲比例,默认值是 70。当堆空间的空闲内存大于这个数值时,便会压缩堆空间,得到一个较小的堆。
- Xmaxf和MaxHeapFreeRatio是等价的,如
-Xmaxf0.7
等价于-XX:MaxHeapFreeRatio=70
MinHeapDeltaBytes
- MinHeapDeltaBytes表示当我们要扩容或者缩容的时候,决定是否要做或者尝试扩容的时候最小扩多少,默认为192K
- Xminf与Xmaxf是一个小数 , 在0~1之间