1

I have sample app with starting RSS size of 600MB when using serial GC. Once I use G1 RSS memory after bootstrap increases to 800Mb.

Does anybody know how I can profile that increase and whenever there any G1 tuning options to improve memory footprint?

4

1 回答 1

3

如果您真的非常关心内存占用高于一切,请不要使用 G1。这是一个带有辅助数据结构的复杂 GC,它通过只收集旧的 gen 零碎来避免进行完整的 GC。默认情况下,它还有一个暂停时间目标,这导致它更喜欢增加堆而不是错过它的暂停时间目标。

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

不过,您可以尝试以下操作:-XX:MaxHeapFreeRatio=30 -XX:MinHeapFreeRatio=20 -XX:InitiatingHeapOccupancyPercent=30,这应该会告诉 G1 更积极地将内存归还给操作系统并尽快开始收集旧代。

于 2015-06-28T22:59:38.863 回答