当前位置: 首页 > news >正文

JVM中常见的垃圾回收器(Garbage Collectors)

JVM中常见的垃圾回收器(Garbage Collectors)的分类和描述:

在这里插入图片描述

一、新生代收集器(Young Generation Collectors)

新生代收集器主要负责收集新创建的对象,这些对象通常存活时间较短。

Serial GC

• 单线程收集器,适用于小型应用或单核处理器。

• 进行垃圾回收时会暂停所有应用线程(Stop-The-World,STW)。

ParNew

• 多线程收集器,是Serial GC的多线程版本。

• 同样在垃圾回收时暂停所有应用线程。

ParallelGC

• 多线程收集器,使用多个线程进行垃圾回收,减少停顿时间。

• 同样在垃圾回收时暂停所有应用线程。

二、老年代收集器(Old Generation Collectors)

老年代收集器主要负责收集长期存活的对象。

CMS(Concurrent Mark-Sweep)

• 以并发方式进行垃圾回收,减少停顿时间。

• 可能产生较多的内存碎片。

Serial Old

• Serial GC的老年代版本,单线程收集器。

• 进行垃圾回收时会暂停所有应用线程。

Parallel Old

• ParallelGC的老年代版本,多线程收集器。

• 进行垃圾回收时会暂停所有应用线程。

三、整堆收集器(Full GC)

整堆收集器负责收集整个Java堆,包括新生代和老年代。

G1 GC

• 目标是减少停顿时间,使用标记-整理(Mark-Compact)算法。

• 进行垃圾回收时会暂停所有应用线程。

ZGC(Z Garbage Collector)

• 低延迟垃圾回收器,使用标记-整理算法。

• 进行垃圾回收时会暂停所有应用线程。

四、其他

Shenandoah GC

• Java 15中引入的实验性GC,目标是在非常短的停顿时间内回收大量垃圾。

• 使用增量式标记-清除算法,尽可能减少停顿时间。

Epsilon GC

• Java 14中引入的实验性GC,目标是在非常短的停顿时间内回收大量垃圾。

• 同样使用增量式标记-清除算法。

选择垃圾回收器时,需要考虑应用的响应时间要求、吞吐量、内存占用等因素。不同的垃圾回收器适用于不同的应用场景和需求。

相关文章:

  • Angular 项目使用 pdf.js 及批注插件Elasticpdf 教程
  • React框架的Concurrent Mode
  • ROS Bag 数据裁剪教程
  • 1. 标准库的强依赖(核心原因)
  • Kafka 中的事务
  • C++抽卡模拟器
  • testflight上架ipa包-只有ipa包的情况下如何修改签名信息为苹果开发者账户对应的信息-ipa苹果包如何手动改签或者第三方工具改签-优雅草卓伊凡
  • 搭建自己的企业知识库系统:基于 Wiki.js 的云服务器部署实战
  • Qt 入门 1 之第一个程序 Hello World
  • ABAP 新语法 - corresponding
  • 基于混合模型的三步优化框架在人形机器人跳跃运动中的应用
  • 代码随想录算法训练营--打卡day6
  • Unity检索一个物体下所有的子物体,包括未激活
  • EM算法到底是什么东东
  • 编程哲学——TCP可靠传输
  • 人工智能-小说动漫AIGC文生图模型
  • STM32单片机入门学习——第20节: [6-8]编码器接口测速
  • Python 实现的运筹优化系统代码详解(0-1规划背包问题)
  • API调用类型全面指南:理解基础知识
  • ARM-UART
  • 自己的网络平台怎么做/合肥seo推广公司
  • 网站怎么盈利的/新河seo怎么做整站排名
  • 网站开发案例详解下载/中国新闻社
  • 如何用office做网站/seo优化排名软件
  • 北京免费做网站/seo上海推广公司
  • 网站名称是否已被注册/游戏推广平台代理