Java进阶之深入理解JVM(五)

深入理解JVM之垃圾回收器详解

1.浅谈垃圾收集器

GC算法(引用计数、复制、标记清除、标记整理算法)方法论,垃圾收集器就是对应的落地的实现!

1.4种垃圾收集器

  • 1、串行(STW:Stop the World)单线程

在这里插入图片描述

  • 2、并行垃圾回收器(多线程工作,也会导致 STW)

在这里插入图片描述

  • 3、并发垃圾回收器(回收垃圾的同时,可以正常执行线程,并行处理,但是如果是单核CPU,只能交替执行!)

在这里插入图片描述

  • 4、G1垃圾回收器(将堆内存分割成不同的区域,然后并发的对其进行垃圾回收)

在这里插入图片描述

2. 垃圾回收器

  • 查看默认的垃圾回收器java -XX:+PrintCommandLineFlags -version

在这里插入图片描述

java 的 gc 回收器主要有哪些?(曾经有7种,现在6种)

在这里插入图片描述

  • DefNew : 默认的新一代 【Serial 串行】

  • Tenured : 老年代 【Serial Old】

  • ParNew : 并行新一代 【并行ParNew】

  • PSYoungGen : 并行清除年轻代 【Parallel Scavcegn】

  • ParOldGen: 并行老年区

在这里插入图片描述

3. Server / Client 模式

默认现在都是 Server 模式;Client几乎不会使用;

32位的Window操作系统,默认都是 Client 的 JVM 模式;

64位的默认都是 Server 模式;

4.不同的垃圾回收器的机制不同

使用标准,如何选择垃圾回收器

  • 1、单CPU,单机程序,内存小
    -XX:UseSerialGC
  • 2、多CPU,大的吞吐量、后台计算!
    XX:+UseParallelGC
  • 3、多CPU,但是不希望有时间停顿,快速响应!
    -XX:+UseParNewGC 或者 XX:+UseParallelGC

2.G1垃圾回收器

1.以前的垃圾回收器的特点

  • 1、年轻代和老年代是各自独立的内存区域

  • 2、年轻代使用 eden+s0+s1 复制算法

  • 3、老年代收集必须扫描整个老年代的区域;

  • 4、垃圾回收器原则:尽可能少而快的执行GC为设计原则!

2.G1垃圾回收器

G1(Garbage-First)收集器 ,面向服务器端的应用的收集器;

在这里插入图片描述

  • 使用:-XX:+UseG1GC
    这个还不是它最大的亮点,它增加了一些参数,可以自定义垃圾回收的时间!

  • -XX:MaxGCPauseMillis=100 最大的GC停顿时间单位:毫秒,JVM尽可能的保证停顿小于这个时间!

G1 优点

1、没有内存碎片!

2、可以精准空垃圾回收时间!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值