失效链接处理 |
JVM GC问题和垃圾回收器讲解 PDF 下载
本站整理下载:
提取码:zm4w
相关截图:
主要内容:
CMS和 G1 异同
G1什么时候引发full GC
说⼀个最熟悉的垃圾回收算法
吞吐量优先和响应时间优先的回收器有哪些
怎么判断内存泄漏
讲⼀下CMS的流程
为什么压缩指针超过32G失效
压缩指针为 4个byte 32位 同时压缩指针是指将数
据的后三位进⾏截取,使⽤的时候 是进⾏左移3
位,因此压缩指针所占⼤⼩为35bit,所占内存最⼤
为 2的35次⽅ 正好32GB
什么是内存泄漏?GC调优有经验吗?
内存永远被占⽤,不会释放,内存泄漏越来越多,
会造成 OOM 重复内存释放,有可能会造成有⽤
数据丢失的现象
ThreadLocal有没有内存泄漏问题
G1两个region不是连续的,⽽且之间还有可达的引
⽤,现在要回收⼀个,另⼀个怎么处理
讲⼀下jvm堆内存管理(对象分配过程)
听说过cms的并发预处理和并发可中断预处理
到底多⼤的对象会被直接扔到⽼年代
什么是“垃圾”?: 内存不需要的时候,没⽤的内存
空间,就是“垃圾”,相互引⽤没有的对象也是垃圾
RC(reference count)引⽤计数:但是不能解决环
形引⽤的垃圾
root searching :jvm采⽤的是 根可达算法
根:main⽅法中⼀定有⼀些引⽤,从main⽅法中开始
找,能找到的就是有⽤对象,否则进⾏GC
找到垃圾后进⾏清除:清除算法有
mark-sweep(将找到的垃圾变为可⽤的状态,会造
成⼤量内存碎⽚)
copying(将内存分成两半,速度很快,将有⽤内存
拷⻉过来,会造成内存浪费)
mark-compact (碎⽚整理,将垃圾进⾏压缩,算法
效率低,将有⽤的内存顶到上⾯的空闲位置)
左边六个 上⾯ 三个 是在年轻代
下⾯三个是⽼年代
经常⽤的组合为:ParNew 和 CMS(⽤最多)
Serial和serial old (jdk1.0)
Parallel Scavenge 和 Parallel Old (JDK1.8默认 )做
多⽤的 建议使⽤ G1(jdk1.8)
⼗种垃圾回收器:上图中的名称
分代模型:在内存中分成年轻代和⽼年代 可以进
⾏⾼效率垃圾回收,两代会采⽤垃圾回收⽅式不同
年轻代:刚刚new出的对象
|