一、垃圾回收的算法
1、引用记数法 记录对像的引用数量
2、标记-清除算法 会产生空间碎片
3、复制算法 需要使用两块大小相同的内存,应用于新生代
4、标记压缩算法 将所有存活对像压缩到内存的一端,再清理边界外所有空间,应用于老年代
二、垃圾回收的类型
1、新生代串行收集器 特点:独占、单线程、串行,复制算法
2、老年代串行收集器 特点:独占、单线程、串行,标记-压缩算法
3、新生代并行收集器 特点:独占、多线程、并行,复制算法,关注系统吞吐量
4、老年代并行收集器 特点:独占、多线程、并行,标记-压缩算法,关注系统吞吐量
5、CMS(并发标记清除)收集器 特点:非独占、多线程,标记-清除算法
工作步骤:初始标记(独占)、并发标记、重新标记(独占)、并发清理、并发重置
CMS收集器执行过程中,出现内存不足会导致回收失败,这时JVM会启动老年代串行收集器回收
三、垃圾回收调优参数
1、串行GC调优参数
-XX:+UseSerialGC:新生代和老年代使用串行收集器
-XX:SurvivorRatio:设置eden区和survivor区大小的比例
-XX:PretenureSizeThreshold:设置大对像直接进入老年代的对像大小阈值
-XX:MaxTenuringThreshold:设置对像进行老年代的年龄阈值
2、并行GC调优参数
-XX:+UseParNewGC:新生代使用并行收集器
-XX:+UseParallelOldGC:老年代使用并行收集器
-XX:ParallelGCThreads:设置用于垃圾回收的线程数,通常和CPU数量相等
-XX:MaxGCPauseMillis:设置最大垃圾收集停顿时间
-XX:GCTimeRatio:设置吞吐量的大小,是一个0~100的整数
-XX:+UseAdaptivesSizePolicy:打开GC自适应策略
3、CMS调优参数
-XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器
-XX:ParallelCMSThreads:设置用于CMS垃圾回收的线程数
-XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发,默认为68%
-XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾回收后是否要进行一次内存碎片整理
-XX:CMSFullGCsBeforeCompaction:设置进行多少次CMS垃圾回收后,进行一次内存压缩
-XX:+CMSClassUnloadingEnabled:允许对类元数据进行回收
-XX:+CMSParallelRemarkEnabled:启用并重新标记
相关推荐
自己学习总结JVM垃圾回收机制的结构图,一起分享!!!
jvm垃圾回收机制总结
jvm 垃圾回收思维导图,总结了现有的垃圾回收器的有点以及使用场景、垃圾回收算法以及回收的判断依据。
自己总结的jvm中内存和垃圾回收的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者
第四节:垃圾回收算法 1.1标记清除算法 1.2复制算法 1.3 标记整理(标记压缩)算法 第五节:垃圾回收器 1.1Serial/Serial Old收集器 1.2 ParNew收集器 1.3Parallel Scavenge收集器 1.4Parallel Old收集器 1.5CMS...
1.4 JVM调优总结(三)-基本垃圾回收算法 9 1.5 JVM调优总结(四)-垃圾回收面临的问题 12 1.6 JVM调优总结(五)-分代垃圾回收详述1 14 1.7 JVM调优总结(六)-分代垃圾回收详述 1.8 JVM调优总结(七)-典型配置...
该文档总结了JVM主要的七种垃圾回收器特点与区别,分别描述了他们作用于堆内存的哪些区域,采用单线程还是多线程工作方式,在运行过程中是否需要暂停其他用户工作线程。是笔者对周志明老师的《深入理解java虚拟机》...
JVM结构+垃圾回收器+锁总结
关于jvm 垃圾回收的一些日常总结,包括垃圾回收策略,默认垃圾回收策略和一些实验数据
JVM调优总结(4)分代垃圾回收Java开发Java经验技巧共10页.pdf.zip
JVM调优总结(三)基本垃圾回收算法.pdf
有关JVM垃圾回收器讲解,详细讲解了10种垃圾回收器的详细知识点,是自己面试时候自己进行总结的,费劲了心血,感谢各位的下载支持
Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象...本文主要对java垃圾回收机制以及jvm参数等方面做个综述,也算是自己做开发这几年对这方面的一个总结。
jvm内存模型,jvm脑图,jvm调优,jvm垃圾回收算法,jvm垃圾回收器,逃逸算法等总结。
JVM_启动参数_总结。详细介绍JVM的详细启动参数及JVM垃圾回收机制。
文章目录如何判断一个对象是垃圾垃圾回收算法分代收集算法垃圾收集器相关知识总结 如何判断一个对象是垃圾 我们都知道了当堆中的区域没有足够内存去存放对象时就会触发垃圾回收,那么如何来判断一个对象是不是垃圾呢...
JVM调优总结PDF,带原理图,延时如何进行分代垃圾回收
- 聊一聊 JVM 中的垃圾回收算法? - 标记-清除算法 - 标记-复制算法 - 标记-整理算法 - 什么是记忆集,什么是卡表?记忆集和卡表有什么关系? - 什么是卡页? - 什么是写屏障?写屏障带来的问题? - 什么是...
JVM调优总结(六)-分代垃圾回收详述2[归纳].pdf