• 【Java】JVM(三)、Java垃圾收集器


    一、Minor GC、Major GC 和 Full GC

      Minor GC:清理新生代空间,当Eden空间不能分配时候引发Minor GC

      Major GC:清理老年代空间

      Full GC:清理Java堆空间

    二、新生代垃圾收集器

      1. Serial 收集器

      

      线程:单线程收集器,

      算法:新生代标记复制,老年代标记整理

      缺点:在进行垃圾收集时候需要停止所有用户线程(STW)

      优点:没有线程交互开销

      

      2. ParNew 收集器

      

      在Serial收集器上进行改进,将GC改成了多线程,其他的包括Serial可用的所有控制参数、收集算法、STW、对象分配规则、回收策略等都与Serial完全一样。

     

      3. Parallel Scavenge 收集器

      算法:复制算法

      线程:多线程

      关注点:系统吞吐量

      系统吞吐量=运行用户代码时间(运行用户代码时间+垃圾收集时间)

    三、老年代垃圾收集器

      1. Serial Old 收集器

      Serial Old 是Serial 的老年代版本

      线程:单线程

      2. Parallel Old 收集器

      Parallel Old 是 Parallel Scavenge 的收集器老年代版本,

      3. CMS(Concurrent Mark Sweep 并发标记清理)收集器

      

      线程:多线程

      算法:标记清理

      步骤

      1)初始标记:标记GC Root 能直接关联到的对象

      2)并发标记:GC Root Tracing 过程

      3)重新标记:标记并发期间Java程序产生的对象

      4)并发清除:清理垃圾

      缺点:

      1)对CPU敏感,虽然不会停止CPU,但是会占用部分CPU资源

      2)无法处理浮动垃圾(在初始标记之后,并发标记时候产生的垃圾),只能留着下次清理

      3)大量的空间碎片

      4. G1 收集器

      优势:

      1)并行与并发

      2)分代收集

      3)空间整合

      4)可预测停顿

      步骤:

      1)初始标记

      2)并发标记

      3)最终标记(修正并发标记期间用户继续运作导致标记变动的一部分记录)

      4)筛选回收

      

     

  • 相关阅读:
    【python学习笔记】字符串格式化
    React-Props 一/列表渲染/条件渲染
    搜索电影小demo-react版(10.5-10.6)
    todolist-react版(9.20-9.21)
    el-form、form 等表单校验哪些事
    iframe 详解-在vue中使用iframe/iframe在vue中使用
    jmeter-beanshell 前置处理器 传参
    jmeter-beanshell-Typed variable declaration
    java 获取当前时间的年份、月份、周数
    jmeter-java.net.URISyntaxException: Illegal character in query at index 76
  • 原文地址:https://www.cnblogs.com/zleiblogs/p/9296790.html
Copyright © 2020-2023  润新知