Java笔记4--JVM&GC
image.png
image.png
垃圾回收算法
1.引用计数法
image.png
2.复制算法 (新生代)
image.png
复制活的到空的(复 活)
image.png
复制之后有交换,谁空谁是To (To 0 --->往占用0的位置挪)
优点:没有产生内存碎片, 缺点:大对象复制耗时(所以用于新生代)
3.标记清除法 (老年代)
image.png
4.标记整理法 (老年代)
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}
= 与 := 的区别是,一个是默认,一个是人物改变或者 jvm 加载时改变的参数
工作中常用的 JVM 配置参数
image.png
永久代用的是JVM的堆内存
通过-XX:+PrintGCDetails查看GC收集日志
image.png
image.png
image.png
image.png
image.png
image.png
该参数范围只能设置0~15(java8)
引用
image.png
强引用
image.png
软引用
image.png
弱引用
image.png
软/弱引用使用场景
image.png
虚引用
image.png
GC Roots和四大引用总结
image.png
OOM(常见)
image.png
image.png
GC Overhead
image.png
Direct buffer memory
image.png
通常因为NIO导致
unable to create new native thread
image.png
Metaspace
image.png
GC 收集器
image.png
其中,G1收集器是将堆内存分割成不同的区域然后并发的对其进行垃圾回收.
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.初始标记
image.png
2.并发标记
image.png
3.重新标记
image.png
4.并发清除
image.png
四步总结
image.png
CSM优缺点:
优:并发收集低停顿
缺:1.采用标记清除算法会导致大量内存碎片
2.并发执行对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
G1较与CMS的优势
image.png