JVM(五)——七种垃圾回收器

在 JVM 中,常见的七种垃圾回收器包括:

1、Serial 垃圾回收器(串行回收器)

  • 单线程执行垃圾回收,在进行垃圾回收时,会暂停所有用户线程。
  • 适用于小型应用和单核 CPU 环境。

2、ParNew 垃圾回收器

  • Serial 回收器的多线程版本。
  • 常用于与 CMS 回收器配合使用。

3、Parallel Scavenge 回收器

  • 关注的是吞吐量(运行用户代码的时间 / 总运行时间)。
  • 可以通过参数来调整垃圾回收的时间和频率。

4、Serial Old 回收器

  • Serial 回收器的老年代版本。

5、Parallel Old 回收器

  • Parallel Scavenge 回收器的老年代版本。

6、CMS(Concurrent Mark Sweep)回收器

  • 以获取最短回收停顿时间为目标,是一种并发的垃圾回收器。
  • 分为初始标记、并发标记、重新标记、并发清除四个阶段。

7、G1(Garbage-First)回收器

  • 面向服务端应用,将堆内存划分为多个大小相等的区域。
  • 可以预测停顿时间,并优先回收价值最大的区域。

例如,在一个对响应时间要求较高的 Web 应用中,可能会选择 CMSG1 回收器;而对于后台批量处理任务,更注重吞吐量,可能会选择 Parallel Scavenge 搭配 Parallel Old 回收器。

相关推荐
jiayong239 小时前
知识库概念与核心价值01
java·人工智能·spring·知识库
皮皮林5519 小时前
告别 OOM:EasyExcel 百万数据导出最佳实践(附开箱即用增强工具类)
java
Da Da 泓10 小时前
多线程(七)【线程池】
java·开发语言·线程池·多线程
To Be Clean Coder10 小时前
【Spring源码】getBean源码实战(三)
java·mysql·spring
Wokoo710 小时前
开发者AI大模型学习与接入指南
java·人工智能·学习·架构
电摇小人10 小时前
我的“C++之旅”(博客之星主题作文)
java·开发语言
资生算法程序员_畅想家_剑魔10 小时前
Java常见技术分享-23-多线程安全-总结
java·开发语言
萧曵 丶11 小时前
ArrayList 和 HashMap 自动扩容机制详解
java·开发语言·面试
这是程序猿11 小时前
基于java的ssm框架学生作业管理系统
java·开发语言·spring boot·spring·学生作业管理系统
千百元11 小时前
限制网段访问服务器端口63790
java·网络·mybatis