为什么从串行GC切换到G1会增加RSS

时间:2015-06-28 09:48:34

标签: java memory garbage-collection jvm g1gc

使用串行GC时,我的示例应用程序的RSS大小为600MB。一旦我使用G1 RSS内存后,bootstrap增加到800Mb。

是否有人知道我如何分析这种增加以及何时有任何G1调整选项来改善内存占用?

1 个答案:

答案 0 :(得分:2)

如果您真的非常关心内存占用,请不要使用G1。这是一个具有辅助数据结构的复杂GC,它通过仅收集旧的一块餐,避免了完整的GC。它默认情况下还有一个暂停时间目标,这使得它更喜欢增加堆而不是错过它的暂停时间目标。

坚持使用串行gc或吞吐量并行收集器。

你可以尝试以下方法:-XX:MaxHeapFreeRatio=30 -XX:MinHeapFreeRatio=20 -XX:InitiatingHeapOccupancyPercent=30,这应该告诉G1更积极地回收操作系统的内存,并尽快开始收集旧的。