JVM 垃圾收集

jdk8中已经移除了永生代这个东东,数据转移到了metaspace area。

新创建的对象都放在eden,  eden满了之后 jvm执行mark-copy算法,标记那些还幸存的对象,放到survivor1,其他的都清理掉。

等下一次eden或者survivor1满的时候,mark-copy又开始工作,将eden和survivor1中幸存的对象标记一下,放到survivor2,其他的都清理掉

以上就是年轻代的垃圾回收,成为minor GC

老年代比较复杂,老年代的垃圾回收成为major GC

时间: 2025-01-05 23:01:12

JVM 垃圾收集的相关文章

第六章 JVM垃圾收集器(2)

上一章记录了几种常见的垃圾收集器,见<第五章 JVM垃圾收集器(1)> 1.G1 说明: 从上图来看,G1与CMS相比,仅在最后的"筛选回收"部分不同(CMS是并发清除),实际上G1回收器的整个堆内存的划分都与其他收集器不同. CMS需要配合ParNew,G1可单独回收整个空间 原理: G1收集器将整个堆划分为多个大小相等的Region G1跟踪各个region里面的垃圾堆积的价值(回收后所获得的空间大小以及回收所需时间长短的经验值),在后台维护一张优先列表,每次根据允许的

JVM垃圾收集器

1.垃圾回收器类型 1.串行垃圾回收器(Serial Garbage Collector) 2. 并行垃圾回收器(Parallel Garbage Collector) 3. 并发标记扫描垃圾回收器(CMS Garbage Collector) 4. G1垃圾回收器(G1 Garbage Collector) 1.串行垃圾回收器(Serial Garbage Collector) 串行垃圾回收器通过持有应用程序所有的线程进行工作.它为单线程环境设计,只使用一个单独的线程进行垃圾的回收,通过冻结所

JVM垃圾收集算法(标记-清除、复制、标记-整理)

 [JVM垃圾收集算法] 1)标记-清除算法: 标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象(错了吧?) 清除阶段:清除所有未被标记的对象 2)复制算法: 将原有的内存空间分为两块,每次只使用一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未被使用的内存块中,然后清除正在使用的内存块中的所有对象. 3)标记-整理算法: 标记阶段:先通过根节点,标记所有从根节点开始的可达对象,未被标记的为垃圾对象 整理阶段:将所有的存活对象压缩到内存的一段,之后清理边界所有的空间

读懂JVM垃圾收集日志

JVM垃圾收集搞懂原理很重要,但是连垃圾收集的日志都不懂,这tmd还分析个屁的问题啊,典型的空有理论知识,动手实践为零.本篇就来具体的学习一下JVM中的垃圾收集日志. 第一步,垃圾收集的选项 图1 JVM垃圾收集日志选项 图1中后面标有大拇指的是该图作者的推荐选项. -XX:+PrintGCDetails参数用于告诉虚拟机在发生垃圾收集行为时打印内存回收日志,并且在进程退出的时候输出当前内存的各区域分配情况. GC, Full GC说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代

【006】【JVM——垃圾收集器总结】

 JVM--垃圾收集器总结 垃圾收集器概览 收集算法是内存回收的方法论,垃圾收集据是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现没有规定,不同的厂商.不同版本的虚拟机所提供的垃圾收集器可能会有很大差别,一般都会提供参数供用户根据自己的所用特点和要求组合出各个年代所使用的收集器.下面是基于JDK 1.7 Update 14 之后的HotSpot 虚拟机垃圾收集器.如果两个收集器之间有连线就说明它们可以搭配使用.直到现在还没有最好的收集器,更加设有万能的收集器,只是对具体应用

JVM垃圾收集器(1)

此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 说明:垃圾回收算法是理论,垃圾收集器是回收算法的实现,关于回收算法,见<第四章 JVM垃圾回收算法> 1.七种垃圾收集器 Serial(串行GC)-- 复制 ParNew(并行GC)-- 复制 Parallel Scavenge(并行回收GC)-- 复制 Serial Old(MSC)(串行GC)-- 标记-整理 CMS(并发GC)-- 标记-清除 Parallel Old(并行GC)--标记-整理

JVM垃圾收集器-Parallel Scavenge收集器

今天我给大家讲讲JVM垃圾收集器-Parallel Scavenge收集器 Parallel Scavenge收集器 ? ? ? ?Parallel Scavenge收集器也是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器,看上去和ParNew都一样,那它有什么特别之处呢? ? ? ??Parallel Scavenge收集器的特点是它的关注点与其他收集器不同,CMS等收集器的关注点尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标是

5种JVM垃圾收集器特点和8种JVM内存溢出原因

先来看看5种JVM垃圾收集器特点 一.常见垃圾收集器 现在常见的垃圾收集器有如下几种: 新生代收集器: Serial ParNew Parallel Scavenge 老年代收集器: Serial Old CMS Parallel Old 堆内存垃圾收集器:G1 每种垃圾收集器之间有连线,表示他们可以搭配使用. 二.新生代垃圾收集器 (1)Serial 收集器 Serial 是一款用于新生代的单线程收集器,采用复制算法进行垃圾收集.Serial 进行垃圾收集时,不仅只用一条线程执行垃圾收集工作,

记一次有关于Jvm垃圾收集器的整理

记一次有关于Jvm垃圾收集器的整理 垃圾回收器 算法: 引用计数法 复制算法 标记清楚 标记整理 垃圾回收的方式 1.Serial:串行回收 2.Parallel:并行回收 3.CMS:并发标记清除 4.G1:G1 截止到java10               之后有ZGC Seial:串行垃圾回收,单线程垃圾回收的时候会停掉用户的线程进行垃圾回收不适合服务器的环境 Parallel:并行垃圾回收多个垃圾收集线程并行工作也会停掉垃圾回收的时候用户的线程 CMS:用户线程和垃圾回收线程同时执行(

jvm 垃圾收集器分析

jvm 垃圾收集器分析 jvm 垃圾收集器分析   新生代收集器 老年代收集器 优点 缺点 serial收集器 V   1.jdk1.3开始的单线程收集器 2.client模式下很好的选择. 3.复制算法 1.单线程,收集时需要暂停所有线程(stop the world) parNew收集器 V   1.serial的多线程版 2.server模式下 3.可与CMS收集器工作 4.线程数与cpu数相同 1.单CPU下不会比serial收集器性能好   Parallel Scavenge 收集器