jvm垃圾回收
1.如何定位垃圾
1.引用计数
2.根可达算法
2.垃圾回收算法
标记清除…位置不连续 产生碎片
拷贝算法…没有碎片 浪费空间
标记压缩…没有碎片 效率偏低
3.jvm内存分代模型(用于分代垃圾回收)
1.部分垃圾回收器使用的模型
2.新生代+老年代+ 永久代(1.7)/元数据区(1.8)MetaSpace
1.永久代 元数据 存放class
2.永久代必须指定大小限制,元数据区可以设置,也可以不设置,无上限(受限于物理内存)
3.字符串常量 1.7(永久代) ,1.8(堆)
4.MethodArea逻辑概念…永久代,元数据空间
3.新生代:eden +2survivor
1.ygc回收后,大多数对象被回收 活着进入s0
2.再次gc eden+s0 -> s1
3.再次gc eden+s1 -s0
4年龄足够- 进入老年代(15 次,CMS 6次)
5.s区装不下 装不下的直接进老年代
4.老年代
1.顽固分子
2.老年代满了full gc
5.gc tuning(Generation)
1.尽量减少FGC
2.MinorGC~YGC
3.MajorGC~FGC
垃圾回收器:
serial serialold
PS PO
PN -cms-serialOld
三色标记
rset反向指针
G1
颜色指针,逻辑分区
ZGC