调整一代大小(例如年轻一代)的影响如何影响其他一代(例如终身一代)的收集频率和暂停时间?
在本文中https://www.oracle.com/technetwork/java/gc-tuning-5-138395.html ,它近似于没有影响。我想了解这种近似背后的原因。
最佳答案
这里需要考虑的是,控制 GC 暂停时间的主要因素是对象分配的速率以及这些对象成为垃圾的速度。
了解(在 Hotspot 中)年轻一代和老一代使用不同的算法也很重要。
对于年轻代,收集只是将对象复制到幸存者空间或保留到老年代。老一代有多大啊仅当没有足够的空间来放置所有必要的对象时,才会产生影响。
对于旧一代,有不同的算法,但它们都需要识别实时数据和可用空间。更改年轻代的大小将影响 Minor GC 发生的频率,但不会影响最终进入老一代的数据量。根据所使用的算法,可能需要执行完整的压缩收集,但同样,当发生这种情况时,不会受到年轻一代大小的影响。老一代的任期和 split 率。将成为决定因素。
关于java - 一代的大小会影响垃圾收集中其他一代的吞吐量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56311605/