设置Java程序的最大内存是否会影响GC?

yxk*_*yxk 3 java garbage-collection

在运行Java程序时添加-Xmx参数会导致垃圾收集器采取不同的行为还是更少发生?

eri*_*son 9

是的,大多数Java垃圾收集器只在需要时运行,而不是按计划运行,无论是否需要.因此,通常,更多内存会导致频繁,更长的垃圾收集.

世代垃圾收集器具有控制年轻和终生代之间的记忆分配的设置.通过将这些设置为年轻一代使用较小比例的总内存,年轻一代的绝对大小可以保持与总堆大小增加相同.然后,您将看不到垃圾收集频率或持续时间的大量变化 - 但是对于缓存等应用程序,您将有更多空间用于长期存在的对象.