pc网站生成手机网站,wordpress 显示置顶文章,wordpress友情链接直接留空白代码,电商网站建设基础ppt文章目录 什么是JVM垃圾收集器四种垃圾收集器#xff08;按类型分#xff09;1.串行垃圾收集器(效率低#xff09;2.并行垃圾收集器(JDK8默认使用此垃圾回收器#xff09;3.CMS#xff08;并发#xff09;垃圾收集器(只针对老年代垃圾回收的#xff09;4.G1垃圾回收器(在… 文章目录 什么是JVM垃圾收集器四种垃圾收集器按类型分1.串行垃圾收集器(效率低2.并行垃圾收集器(JDK8默认使用此垃圾回收器3.CMS并发垃圾收集器(只针对老年代垃圾回收的4.G1垃圾回收器(在JDK9之后默认使用G1)第一阶段-----Young Collection(年轻代垃圾回收)Young Collection Concurrent Mark (年轻代垃圾回收并发标记)第三阶段-----Mixed Collection (混合垃圾回收,新老都参与) G1和CMS区别 什么是JVM垃圾收集器
垃圾收集器是负责执行垃圾回收的组件它们用于管理Java程序运行时的内存分配和释放。垃圾收集器的主要任务是自动回收不再使用的内存对象并将内存空间重新回收以供程序继续使用。
四种垃圾收集器按类型分
1.串行垃圾收集器(效率低
Serial和Serial Old串行垃圾收集器是指使用单线程进行垃圾回收堆内存较小适合个人电脑
Serial 作用于新生代采用复制算法Serial Old 作用于老年代采用标记-整理算法
垃圾回收时只有一个线程在工作并且java应用中的所有线程都要暂停STW等待垃圾回收的完成。 2.并行垃圾收集器(JDK8默认使用此垃圾回收器
Parallel New和Parallel Old是一个并行垃圾回收器JDK8默认使用此垃圾回收器
Parallel New作用于新生代采用复制算法Parallel Old作用于老年代采用标记-整理算法
垃圾回收时多个线程在工作并且java应用中的所有线程都要暂停STW等待垃圾回收的完成。通过并行执行垃圾回收以提高性能 相比较与串行垃圾收集器并行垃圾收集器无非就是多开写线程来做垃圾回收其实同样也要暂停所有正在执行的线程只不过在多个线程并行回收效率比串行高 3.CMS并发垃圾收集器(只针对老年代垃圾回收的
CMS全称 Concurrent Mark Sweep是一款并发的、使用标记-清除算法的垃圾回收器该回收器是针对老年代垃圾回收的是一款以获取最短回收停顿时间为目标的收集器停顿时间短用户体验就好。
其最大特点是在进行垃圾回收时应用仍然能正常运行。
4.G1垃圾回收器(在JDK9之后默认使用G1) G1垃圾收集器的设计目标是在可控的停顿时间内实现高吞吐量的垃圾回收。 应用于新生代和老年代划分成多个区域每个区域都可以充当 edensurvivorold humongous其中 humongous 专为大对象准备采用标记整理算法 因为基本上G1主要针对大型堆内存进行垃圾回收而复制算法在大型堆内存上的应用存在一些挑战和限制。(必须考虑内存空间使用率 响应时间与吞吐量兼顾 分成三个阶段新生代回收、并发标记、混合收集在不同的条件下被触发 如果并发失败即回收速度赶不上创建新对象速度会触发 Full GC尽量避免 如果对象内存分配速度过快mixed gc来不及回收导致老年代被填满就会触发一次full gcG1的full gc算法就是单线程执行的serial old gc会导致异常长时间的暂停时间需要进行不断的调优尽可能的避免full gc. 第一阶段-----Young Collection(年轻代垃圾回收)
初始时所有区域都处于空闲状态 创建了一些对象挑出一些空闲区域作为eden区存储这些对象 当伊甸园需要垃圾回收时挑出一个空闲区域作为幸存区(s)用复制算法复制存活对象需要暂停用户线程 随着时间流逝eden区的内存又有不足 将eden区以及之前幸存区中的存活对象采用复制算法复制到新的幸存区其中较老对象晋升至老年代(o) XX:MaxTenuringThreshold(默认15)计算出一个恰当的任期阈值凡是超过任期阈值的对象都会被晋升到老年代。 或者幸存区里有大对象也会直接晋升到老年代毕竟大对象复制来复制去影响整体效率 Young Collection Concurrent Mark (年轻代垃圾回收并发标记)
当老年代占用内存超过阈值(默认是45%)后触发并发标记这时无需暂停用户线程 并发标记之后会有重新标记阶段解决漏标问题此时需要暂停用户线程。 这些都完成后就知道了老年代有哪些存活对象随后进入混合收集阶段。此时不会对所有老年代区域进行回收而是根据停顿时间目标优先回收价值高存活对象少的区域这也是 Gabage First 名称的由来。 注意这个阶段只是做标记根据重新标记停顿时间来判断哪些老年代里面或的对象少下一阶段优先对这些回收价值高的老年代来回收 第三阶段-----Mixed Collection (混合垃圾回收,新老都参与)
混合收集阶段中参与复制的有 eden、survivor、old 复制完成内存得到释放。进入下一轮的新生代回收、并发标记、混合收集
G1和CMS区别