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

JVM——有哪些常见的垃圾收集器

新生代垃圾收集器:

1)Serial 收集器
单线程收集器,适合小型应用和单处理器环境。
触发 Stop-The-World(STW)操作,所有应用线程在 GC 时暂停。
适用场景:适用于单线程应用和客户端模式。

2)ParNew 收集器
是 Serial 收集器的多线程版本,能够并行进行垃圾收集,
与 CMS 收集器配合使用时,通常会选择 ParNew 收集器作为新生代收集器
适用场景:适用于多处理器环境,通常配合 CMS 收集器使用。

3)Parallel Scavenge 收集器(吞吐量优先)
也称为"吞吐量收集器",追求最大化 CPU 时间的利用率。
并行处理新生代垃圾回收,适合大规模后台任务处理,注重吞吐量而非延迟。
适用场景:适用于大规模运算密集型后台任务,适合对吞吐量要求较高的场景。

老年代垃圾收集器:

1)Serial Old 收集器:
 Serial 收集器的老年代版本,使用标记-整理(Mark-Compact)算法进行垃圾回收。
 适用场景:适合单线程环境和低内存使用场景,通常配合 Serial 收集器一起使用。

2)Parallel Old 收集器
Parallel Scavenge 收集器的老年代版本,使用多线程并行标记-整理算法。
适用场景:适合大规模并行计算的场景,适用于高吞吐量要求的任务。

3)CMS(Concurrent Mark-Sweep)收集器
并发标记-清除收集器,追求低延迟,减少 GC 停顿时间。
使用并发标记和清除算法,适合对响应时间有较高要求的应用
缺点:可能会产生内存碎片,并且在并发阶段可能会发生Concurrent Mode Failure,导致 FulGC
适用场景:适用于对响应时间要求高的应用,如 Web 服务和电商平台。

4)G1(Garbage First)收集器:
设计用于取代 CMS 的低延迟垃圾收集器,能够提供可预测的停顿时间。
通过分区来管理内存,并在垃圾收集时优先处理最有价值的区域,避免了CMS 的内存碎片问题。
适用场景:适合大内存、多 CPU 服务器应用,尤其在延迟和响应时间敏感的场景中表现出色。

垃圾收集算法
标记-清除算法:主要用于CMS,标记存活对象后,清除不可达对象,但容易产生内存碎片。
标记-整理算法:用于 G1 和 Parallel Old,标记存活对象后进行整理避免内存碎片。


文章转载自:
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://www.dtcms.com/a/280684.html

相关文章:

  • Props
  • 时序数据库与AI的融合:智能时代的数据基石
  • 027_国际化与本地化
  • Spring应用抛出NoHandlerFoundException、全局异常处理、日志级别
  • FreeRTOS学习笔记——移植说明、任务创建
  • 【Ubuntu22.04】repo安装方法
  • Linux715 磁盘管理:逻辑卷
  • 聊聊MySQL中的buffer pool
  • Spring Boot目录变文件夹?3步解决!
  • Unity Editor下拉框,支持搜索,多层级
  • BGP服务器和多线服务器的不同之处
  • Python初学者笔记第十三期 -- (常用内置函数)
  • 原点安全签约金网络数科,共建一体化数据安全防护体系
  • Docker 镜像(Image)常用命令总结
  • ASP .NET Core 8结合JWT轻松实现身份验证和授权
  • CMake基础:覆盖项目开发的五大配套工具
  • LLM面试题及讲解 4
  • VSCode同时支持Vue2和Vue3开发的插件指南
  • 【编程】-环形缓冲区
  • 安全参綉25暑假第一次作业
  • 超详细 anji-captcha滑块验证uniapp微信小程序前端组件
  • 备忘录设计模式
  • asyncio 与 uvloop
  • 策略设计模式分析
  • 如何将华为文件传输到电脑
  • Linux的用户和用户组与权限解析、环境变量说明与配置、sudo配置解析和使用
  • HarmonyOS从入门到精通:自定义组件开发指南(七):自定义事件与回调
  • 涨停板池,跌停板池,炸板池,次新股池,强势股池数据接口
  • 单臂路由实现VLAN互通实验
  • e签宝电子合同成为白象食品数字化转型中的关键一环