为什么JAVA进程占用内存会超过Xmx设置
刘婧婧
2022-04-01 15:31:15
共 1 个回答
付文泰
2022-04-04 22:04:23
Xmx 不是说内存使用不会超过这个值,而是说超过或接近这个值会触发OLD GC。当触发Young GC 后部分对象可能会从年轻带进入老年代。但老年代这个时候不一定有足够的内存来保存这些对象。老年代如何判定内存是否足够。 就是Xmx减去已经用了的内存再减去本次须要的内存。 如果不够就会触发OLD GC。哎,越解释越多。你就记着这个值就是建议内存最大使用值。 如果内存使用超过这个值,jvm认为还有内存可以使用,也会将对象一直往堆里面放,不过会频繁触发 FULL GC
阅读原文