本文基礎(chǔ):
1构罗、已經(jīng)理解JVM內(nèi)存結(jié)構(gòu),對(duì)堆內(nèi)存結(jié)構(gòu)有清晰的認(rèn)識(shí)(Eden,s0,s1,OldGen)
2漠秋、理解通常情況下堆內(nèi)存分配的使用對(duì)象(new 出來的對(duì)象风范,注意區(qū)分引用是存放在方法區(qū))
理解幾個(gè)常用參數(shù):(基礎(chǔ)設(shè)置:-XX:PrintGCDetails)
1、設(shè)置堆內(nèi)存大心∏ :-Xmx(最大堆內(nèi)存) -Xms(初始對(duì)內(nèi)存) -Xmn(新生代大小) 辫继。注意:一般最大堆內(nèi)存和初始堆內(nèi)存大小設(shè)置相同,原因避免頻繁的Minor GC
2俗慈、設(shè)置Eden和s0,s1的比例:-XX:SurvivorRatio=8,表示8:1:1(可以根據(jù)項(xiàng)目需要進(jìn)行設(shè)置)
3姑宽、大對(duì)象直接進(jìn)入老年代的設(shè)置:-XX:PretenureSizeThreshold(單位字節(jié))
比如:-XX:PretenureSizeThreshold=3145728(表示3M)
4、設(shè)置進(jìn)入老年代的年齡:-XX:MaxTenuringThreshold(年齡的增長原則:每存活過一次Minor GC,則加1)
5闺阱、進(jìn)入老年代的另一個(gè)原則:Survivor空間相同年齡所有對(duì)象大小的總和大于Survivor空間的一半炮车,年齡大于或等于該年齡對(duì)象的直接進(jìn)入老年代,無需等到MaxTenuringThreshold設(shè)置的大小酣溃。