• 常见的几种垃圾回收器


    什么是垃圾回收器,可以这样理解,垃圾回收算法是概念理论,对应JAVA中的接口,垃圾回收器就是具体的实现,JVM有很多垃圾回收器,它们实现了不同的垃圾回收算法,可以用在不同jdk版本,也适配不同的区域,比如青年代老年代都有各自专属的垃圾回收器。

    在年轻代(Young Generation)中使用的垃圾回收器:

    1. Serial Garbage Collector (SerialGC):适用于单线程应用程序或小型应用程序。它使用标记-复制算法进行垃圾收集,停止应用程序线程以执行垃圾回收操作。

    2. Parallel Garbage Collector (ParallelGC):也称为吞吐量收集器,适用于多核处理器的应用程序。它使用标记-复制算法,但允许多个线程并行执行垃圾回收操作,以提高吞吐量。

    3. G1 Garbage Collector (G1GC):适用于大型内存应用程序。它使用分代收集,但将年轻代和老年代划分为不同的区域,使用标记-整理算法,以更好地控制垃圾回收的停顿时间和内存利用率。

    在老年代(Old Generation)中使用的垃圾回收器:

    1. CMS Garbage Collector (CMsGC):也称为Concurrent Mark-Sweep收集器,适用于需要低停顿时间的应用程序。它使用标记-清除算法,但在标记和清除阶段允许与应用程序线程并发执行,以减少停顿时间。

    2. Parallel old Garbage Collector (ParalleloldGC): 与ParallelGC类似,但专门用于老年代。它使用标记-复制算法。

    其他特殊用途的垃圾回收器:

    1. Z Garbage Collector(ZGC):适用于需要低延迟和大内存的应用程序。它使用分代收集,但在标记和整理阶段允许与应用程序线程并发执行,以减少停顿时间。

    2. G1 Garbage Collector (G1GC):在G1GC中,老年代的垃圾回收也使用标记-整理算法,与年轻代的处理方式相似。适用于大内存和低延迟要求的应用,具有高度可预测的停顿时间

    Serial和Serial Old 是串行的,jdk早期。Serial:标记复制算法,Serial Old:标记整理算法。都要stw,都只有一个gc线程。

    Parallel Scavenge、Parallel Old是java8默认的。Parallel Scavenge:标记复制算法,Parallel Old:标记整理算法。有多个gc线程。

  • 相关阅读:
    JAVA计算机毕业设计重工教师职称管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
    leetcode 289. 生命游戏
    史上最全-常见正则表达式集合
    vue3 联合搜索
    每日练习------有10个数字要求分别用选择法从大到小输出
    Laravel artisan 常用命令
    macOs Ventura 13自动开机关机设置教程(命令行)
    模块化打包工具-初识Webpack
    Spring的注入
    PTA 7-3 插松枝(单调栈)
  • 原文地址:https://blog.csdn.net/qq_51967234/article/details/137890899