CMS垃圾收集器
目标:以获取最短回收停顿时间为目标的收集器
回收区域:老年代
回收算法:标记-清除
回收过程:初始标记——>并发标记——>重新标记——>并发清除
标记算法:使用GC root,可达性分析算法
优点:并发收集,低停顿
缺点:1,CMS收集器对cpu资源非常敏感,cpu要多;
2,CMS收集器无法处理浮动垃圾(回收过程中新产生的垃圾),可能失败导致一直Full GC;失败原因是预留的内存无法满足程序运行需要。
3,标记-清楚算法会产生空间碎片,通过参数指定在Full GC时开启内存合并整理。
GC root对象
1,虚拟机栈(栈帧中本地变量表)中引用的对象
2,方法区中类静态属性引用的对象
3,方法去中常量引用的对象
4,本地方法栈中JNI(native方法)引用的对象
JVM内存管理
jdk8之前内存划分
hotspot在jdk7中将常量和字符串常量池从方法去移到了堆中。
之前方法区习惯称为永久带;
在jdk8中,永久带已经不存在,存储的类信息,编译的代码数据都已经存储在元空间(MetaSpace);
元空间没有处于堆内存上,而是处于本地内存(NativeMemory);
网友评论