首页 > 其他分享 >JVM——垃圾回收器

JVM——垃圾回收器

时间:2023-03-19 14:57:12浏览次数:35  
标签:标记 回收 并发 3.4 GC 垃圾 JVM

3垃圾回收器

三种垃圾回收器

image-20230318133931217

3.1 串行

image-20230318162459191

3.2 吞吐量优先

image-20230318163201351

ratio默认值为99 较难达到,一般设置为19

3.3 响应时间优先

image-20230318221450572

3.4 G1

image-20230318234336245

jdk1.8不是默认开启的,需要用-XX:+UseG1GC来启用

3.4.1 G1垃圾回收阶段

image-20230318234514924

3.4.2 Young collection

image-20230318234635551

伊甸园满后,会触发,然后伊甸园的幸存对象放到幸存区

image-20230318234718667

伊甸园——》幸存区——》老年区

3.4.3 Young Collection + CM

image-20230318234918180

3.4.4 Mixed Colletion

image-20230319000114564

3.4.5 Full GC

image-20230319134523252

G1和CMS都是并发回收失败,(垃圾回收的速度慢于垃圾产生的速度时),才会触发串行的Full GC

3.4.6 跨代引用

image-20230319134824961

对引用了新生代中的对象的老年代的的GC ROOT进行扫描(脏卡),减少对GC Root的扫描时间

3.4.7 Remark

image-20230319135311452

加了写屏障技术,在白色的对象的引用关系在并发标记时被修改后,会变成灰色加入一个队列,然后在重新标记阶段,从队列中取出,重新标记这个对象(黑色or白色),之后会进行统一的清理。

3.4.8 JDK 8u20 字符串去重

image-20230319141044829

3.4.9 JDK 8u40并发标记类卸载

image-20230319141711444

3.4.10 JDK 8u60回收巨型对象

image-20230319143528690

在无卡表引用时,新生代的minorGC就回收掉

3.4.11 JDK9 并发标记起始时间的调整

image-20230319143743259

标签:标记,回收,并发,3.4,GC,垃圾,JVM
From: https://www.cnblogs.com/jy00/p/17233045.html

相关文章

  • 熟悉JVM吗?为什么新生代内存需要有两个Survivor区?
    在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区?为什么要有Survivor区如果没有Survivor,Eden区每进行一次MinorGC,存活的对象就会被送到老年代。老年代很快被......
  • JVM详解
    1JVM运行机制概述JVM运行机制类加载机制:类加载过程由类加载器来完成,即由ClassLoader及其子类实现,有隐式加载和显式加载两种方式。隐式加载是指在使用new等方式创建对......
  • jvm 八股
    jvm先掌握4点。1.类加载器,2.内存模型,3.垃圾回收机制,4.性能调优。chapter1学习资料:https://gavinzhang1.gitbooks.io/java-jvm-us/content/la_ji_shou_ji_qi_yu_nei_......
  • Java三大版本。JDK、JRE、JVM
    JavaSE:标准版(桌面程序,控制台开发...)JavaME:嵌入式开发(手机,小家电...)JavaEE:E企业级开发(Web端,服务器开发...)JDK:javadevelopmentkitJava开发者工具JRE:javaruntimeen......
  • JVM——垃圾回收
    2垃圾回收2.1判断对象可以回收引用计数法计算被引用的数,如果被引用数为0则进行回收可达性分析算法jvm所使用的方法根对象:肯定不能被当做垃圾回收的对象垃......
  • jvm jstat -gcutil 参数详解
    jstat-gcutil854410008544进程ID,用jps命令查出1000单位毫秒,每秒读取一次S0survivor0使用百分比S1survivor1使用百分比EEden区使用百分比O老年代使用百分比M......
  • 读Java性能权威指南(第2版)笔记20_垃圾回收G
    1. Survivor空间1.1. 新生代被划分为两个Survivor空间和一个Eden空间的原因1.1.1. 刚刚被创建并且还在使用中,所以不能被回收,但它们的寿命并没有长到足以进入老年代......
  • 图像处理(1):PyTorch垃圾分类 数据预处理
    基于深度学习框架PyTorchtransforms方法进行数据的预处理产品和技术负责人,专注于NLP、图像、推荐系统整个过程主要包括:缩放、裁剪、归一化、标准化几个基本步骤。图像归一......
  • 如何在jvm dump出的堆文件中查看指定成员数据,或者全局变量
    很多时候,当程序OOM或者其他异常情况时,我们需要搞清楚当时应用内部数据情况,所有某些时候我们需要查看当时内存镜像中某些成员变量的值。比如查看当时内存实例中数据库账号,......
  • IDEA 远程调试 Remote JVM Debug(转)
    https://blog.csdn.net/qq_42277779/article/details/125256915https://refactorfirst.com/how-to-remote-debug-java-application-on-kubernetes......