JVM內存模型和性能調優:JVM內存分配與回收:老年代空間分配擔保機制- 第27篇

年輕代每次minor GC之前JVM都會計算下老年代剩餘可用空間

如果這個可用空間小於年輕代裏現有的所有對象大小之和( 包括垃圾對象 )

就會看一下“-XX:-HandlePromotionFailure”( jdk1.8默認就設置了 )的參數是否設置了。

如果有這個參數,就會看看老年代的可用內存大小,是否大於之前每一次minor GC後進入老年代的對象的平均大小。

如果上一步結果是小於或者之前說的參數沒有設置,那麼就會觸發一次Full GC,對老年代和年輕代一起回收一次垃圾,如果回收完還是沒有足夠空間存放新的對象就會發生"OOM"

當然,如果minor GC之後剩餘存活的需要挪動到老年代的對象大小還是大於老年

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章