天天看點

深入了解JVM - 記憶體配置設定政策

對象優先在Eden配置設定

對象優先在Eden配置設定,如果說Eden記憶體空間不足,就會發生Minor GC

大對象直接進入老年代

大對象:需要大量連續記憶體空間的Java對象,比如:很長的字元串和大型數組。

大對象帶來的副作用:

  1. 當沒有足夠的連續空間來存放大對象的時候,就需要提前出發一次Full GC
  2. 在記憶體回收過程中,會進行大量的記憶體複制

​-XX:PretenureSizeThreshold​

​參數 ,大于這個參數數量直接的對象直接在老年代配置設定,預設為0 ,表示絕不會直接配置設定在老年代。

長期存活的對象将進入老年代

長期存活的對象将進入老年代,預設15歲,可以通過​

​-XX:MaxTenuringThreshold​

​調整。

動态對象年齡判定

為了能更好地适應不同程式的記憶體狀況,虛拟機并不是永遠地要求對象的年齡必須達到了​

​MaxTenuringThreshold​

​​才能晉升老年代,如果在Survivor空間中相同年齡所有對象大小的總和大于Survivor空間的一半,年齡大于或等于該年齡的對象就可以直接進入老年代,無須等到​

​MaxTenuringThreshold​

​的年齡。

空間配置設定擔保

繼續閱讀