调整一代大小(例如年轻一代)的大小的影响如何影响其他一代(例如终身一代)的收集频率和暂停时间?

在本文https://www.oracle.com/technetwork/java/gc-tuning-5-138395.html中,它近似无效。我想了解这种近似背后的原因。

最佳答案

您在这里需要考虑的是,控制GC暂停时间的主要因素是对象分配的速率以及这些对象变为垃圾的速度。

同样重要的是要了解,在热点地区,年轻人和老年人使用不同的算法。

对于年轻一代,收藏只是将对象复制到幸存者空间,或者是将其保留到老一代。老一代有多大。只有在没有足够的空间来提升所有必要对象的情况下,才会产生影响。

对于老一代,有不同的算法,但是它们都需要标识实时数据和可用空间。改变年轻一代的大小将影响次要GC发生的频率,但不会最终导致多少数据最终出现在老一代中。取决于所使用的算法,可能有必要执行完整的压缩收集,但是再次发生这种情况时,不受年轻代大小的影响。老一代的任职率和支离破碎率。将是决定性因素。

10-07 16:26