30.堆區中新生代和老年代相關參數設置(-XX:NewRatio和-XX:SurvivorRatio)


 

1.新生代與老年代

1.存儲在JVM中的Java對象可以被划分為兩類:一類生命周期很短,這類對象的創建和消亡很快;一類生命周期很長,極端情況下,還能夠與JVM的生命周期保持一致。
2.JVM堆區進一步細分為新生代和老年代。
3.年輕代又可以划分為Eden區、Survivor0區和Survivor1區(有時候也叫做from區、to區)
在這里插入圖片描述

2.新生代和老年代的比例設置

1.-XX:NewRatio=2 表示新生代占1,老年代占2。則新生代占整個堆的1/3。(這個參數一般不會使用)
2.默認情況下,新生代和老年代的比例是1:2
在這里插入圖片描述
3.在HotSpot中,Oracle JVM官網說Eden區和另外兩個Survivor空間默認所占的比例是8:1:1。(實際上默認並不是8:1:1,如下圖,Eden區:Survivor0:Survivor1: = 11264 : 2048 : 2048 = 5.5 : 1 : 1,不同的情況,可能比例不一樣,如果需要設置成8:1:1的話,自己直接設置-XX:SurvivorRatio=8就可以了。)
在這里插入圖片描述
4.可以通過-XX:SurvivorRatio調整這個空間的比例,默認值是8
5. -XX:-UseAdaptiveSizePolicy :關閉自適應的內存分配策略 (暫時用不到)
6. 幾乎所有的對象都在Eden區別new出來。
7. 絕大部分的Java對象都在新生代被銷毀
8.-Xmn:設置新生代的空間的大小。 (一般不設置)
在這里插入圖片描述

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM