查看文档 oracle gc1 description 我尚未找到答案,GC1算法如何为大小大于区域大小(例如从1%到20%)的对象分配内存。据记载,对于大于区域大小一半的对象,将像Humongous Object一样进行分配。 从逻辑上讲,它也应该使用多个区域。但是:
1)它们应该有多近?它们应该是连续的吗?
2)是否可以将其他物体放置在该区域中,并适合 区域大小,对象的第二部分位于何处?
答案 0 :(得分:1)
它们应该有多近?它们应该是连续的吗?
以上内容摘自G1 gc的《优化Java》一书中的注释。巨大的区域是连续的。
是否可以将其他对象放置在与对象第二部分所在的区域相符的区域中?
以下第二个答案的文档来自https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/g1_gc_tuning.html#humongous
根据上述文档,该空间中不会分配其他对象。