可以从Tenured空间分配新对象吗?

时间:2010-09-26 03:29:08

标签: java garbage-collection

我知道标志-XX:PretenureSizeThreshold,可用于设置限制YG中的分配大小。

除此之外还有其他场景/条件可以从权属空间分配新对象吗?

如果新物体尺寸大于伊甸园空间,会发生什么?年轻一代GC会发生还是物品从任期区域分配?

1 个答案:

答案 0 :(得分:1)

  

如果新物体尺寸大于伊甸园空间会发生什么?

可以发生的事情有很多:

  • 如果旧空间中有足够的可用内存,则可以在那里分配对象。
  • 如果当前堆大小小于最大堆大小,则可以运行GC并扩展堆。这可能会导致新空间对于对象足够大。
  • 如果运行GC后在旧空间或新空间中没有足够的空间,则会产生OOME。

实际答案取决于JVM版本;例如请参阅this FAQ的问题29,其中说明了HotSpot 1.4.2和早期Sun JVM中发生的事件。