news 2026/6/10 16:12:25

垃圾收集算法了解吗?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
垃圾收集算法了解吗?

见名知义,标记-清除(Mark-Sweep)算法分为两个阶段:

  • 标记: 标记出所有需要回收的对象
  • 清除:回收所有被标记的对象

标记-清除算法

标记-清除算法比较基础,但是主要存在两个缺点:

  • 执行效率不稳定,如果Java堆中包含大量对象,而且其中大部分是需要被回收的,这时必须进行大量标记和清除的动作,导致标记和清除两个过程的执行效率都随对象数量增长而降低。
  • 内存空间的碎片化问题,标记、清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致当以后在程序运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。
  1. 标记-复制算法

标记-复制算法解决了标记-清除算法面对大量可回收对象时执行效率低的问题。

过程也比较简单:将可用内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。

标记-复制算法

这种算法存在一个明显的缺点:一部分空间没有使用,存在空间的浪费。

新生代垃圾收集主要采用这种算法,因为新生代的存活对象比较少,每次复制的只是少量的存活对象。当然,实际新生代的收集不是按照这个比例。

  1. 标记-整理算法

为了降低内存的消耗,引入一种针对性的算法:标记-整理(Mark-Compact)算法。

其中的标记过程仍然与“标记-清除”算法一样,但后续步骤不是直接对可回收对象进行清理,而是让所有存活的对象都向内存空间一端移动,然后直接清理掉边界以外的内存。

标记-整理算法

标记-整理算法主要用于老年代,移动存活对象是个极为负重的操作,而且这种操作需要Stop The World才能进行,只是从整体的吞吐量来考量,老年代使用标记-整理算法更加合适。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:51:25

Qwen3-TTS-12Hz-1.7B-VoiceDesign与Java集成的企业级应用开发

Qwen3-TTS-12Hz-1.7B-VoiceDesign与Java集成的企业级应用开发 1. 为什么企业需要将语音能力嵌入Java系统 在日常工作中,我经常遇到客户提出类似的需求:客服系统需要更自然的语音播报,内部培训平台要支持多角色语音讲解,金融风控…

作者头像 李华
网站建设 2026/6/10 11:55:56

Chinese-RoBERTa-wwm模型微调实战:从数据准备到生产部署的避坑指南

最近在做一个中文文本分类的项目,用到了哈工大和科大讯飞联合发布的 Chinese-RoBERTa-wwm 模型。这个模型在不少中文 NLP 榜单上表现都挺亮眼,但实际微调起来,发现从数据准备到最终部署上线,中间有不少“坑”。今天就把我这次实战…

作者头像 李华
网站建设 2026/6/10 11:54:20

ChatGLM3-6B与Kubernetes集群部署方案

ChatGLM3-6B与Kubernetes集群部署方案 1. 为什么需要在Kubernetes上部署ChatGLM3-6B 大模型服务上线后,最常遇到的不是性能问题,而是稳定性、可扩展性和运维复杂度的问题。我见过太多团队把ChatGLM3-6B跑在单台服务器上,结果一到业务高峰期…

作者头像 李华
网站建设 2026/6/10 13:42:12

3D Face HRN作品集:支持导出OBJ+PNG的端到端3D人脸重建成果

3D Face HRN作品集:支持导出OBJPNG的端到端3D人脸重建成果 1. 这不是“修图”,而是把一张照片“变成立体人” 你有没有试过,只用手机拍一张自拍照,就生成一个能360度旋转、带真实皮肤纹理的3D人脸模型?不是靠一堆照片…

作者头像 李华
网站建设 2026/6/10 11:54:39

lychee-rerank-mm企业实操:用其构建内部知识图谱的图文关联增强模块

lychee-rerank-mm企业实操:用其构建内部知识图谱的图文关联增强模块 1. 为什么企业知识图谱需要图文关联增强? 在企业内部知识管理实践中,大量非结构化数据以“图片文字”形式存在:产品设计稿配说明文档、会议纪要附现场照片、培…

作者头像 李华