image.png
image.png
垃圾回收算法
1.引用計數(shù)法
image.png
2.復(fù)制算法 (新生代)
image.png
復(fù)制活的到空的(復(fù) 活)
image.png
復(fù)制之后有交換,誰空誰是To (To 0 --->往占用0的位置挪)
優(yōu)點:沒有產(chǎn)生內(nèi)存碎片, 缺點:大對象復(fù)制耗時(所以用于新生代)
3.標(biāo)記清除法 (老年代)
image.png
4.標(biāo)記整理法 (老年代)
image.png
image.png
t
GC Roots 一定是從Roots開始的
可以作為GC Root的對象
image.png
image.png
盤點家底查看 JVM 默認值
- 查看初始默認值:-XX:+PrintFlagsInitial
ginseng@ginseng-pc:~/Project/demo$ java -XX:+PrintFlagsInitial
[Global flags]
intx ActiveProcessorCount = -1 {product}
uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
uintx AdaptiveSizePausePolicy = 0 {product}
uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product}
uintx AdaptiveSizePolicyInitializingSteps = 20 {product}
uintx AdaptiveSizePolicyOutputInterval = 0 {product}
uintx AdaptiveSizePolicyWeight = 10 {product}
...
- 查看修改更新:-XX:+PrintFlagsFinal
bool UsePSAdaptiveSurvivorSizePolicy = true {product}
bool UseParNewGC = false {product}
bool UseParallelGC := true {product}
bool UseParallelOldGC = true {product}
bool UsePerfData = true {product}
bool UsePopCountInstruction = true {product}
bool UseRDPCForConstantTableBase = false {C2 product}
= 與 := 的區(qū)別是,一個是默認同诫,一個是人物改變或者 jvm 加載時改變的參數(shù)
工作中常用的 JVM 配置參數(shù)
image.png
永久代用的是JVM的堆內(nèi)存
通過-XX:+PrintGCDetails查看GC收集日志
image.png
image.png
image.png
image.png
image.png
image.png
該參數(shù)范圍只能設(shè)置0~15(java8)
引用
image.png
強引用
image.png
軟引用
image.png
弱引用
image.png
軟/弱引用使用場景
image.png
虛引用
image.png
GC Roots和四大引用總結(jié)
image.png
OOM(常見)
image.png
image.png
GC Overhead
image.png
Direct buffer memory
image.png
通常因為NIO導(dǎo)致
unable to create new native thread
image.png
Metaspace
image.png
GC 收集器
image.png
其中,G1收集器是將堆內(nèi)存分割成不同的區(qū)域然后并發(fā)的對其進行垃圾回收.
image.png
java8
image.png
image.png
新生代收集器
image.png
image.png
image.png
image.png
image.png
image.png
老年代收集器
image.png
image.png
CMS4步過程
image.png
1.初始標(biāo)記
image.png
2.并發(fā)標(biāo)記
image.png
3.重新標(biāo)記
image.png
4.并發(fā)清除
image.png
四步總結(jié)
image.png
CMS優(yōu)缺點:
優(yōu):并發(fā)收集低停頓
缺:1.采用標(biāo)記清除算法會導(dǎo)致大量內(nèi)存碎片
2.并發(fā)執(zhí)行對CPU壓力大
image.png
缺點主要原因
如何選擇垃圾收集器
image.png
G1收集器
image.png
image.png
image.png
image.png
特點
image.png
G1底層原理
image.png
image.png
image.png
image.png
image.png
回收步驟
image.png
image.png
四步
image.png
G1較與CMS的優(yōu)勢
image.png