我正在使用VisualVM分析Java进程,我发现当我使用的堆仍然不断低于100 MB时,堆大小会不断增加到比使用堆大10倍的程度!
阅读文档:
默认情况下,虚拟机会在每个虚拟机上增大或缩小堆 集合试图保持自由空间与活动对象的比例 在特定范围内的每个集合中。设定此目标范围 参数-XX的百分比:MinHeapFreeRatio =和 -XX:MaxHeapFreeRatio =,总大小低于-Xms及以上-Xmx。
因此,将MinHeapFreeRatio
和MaxHeapFreeRatio
分别设定为40%和70%,为什么会发生这种情况?