【JVM】(5)垃圾收集器ParNewCMS与底层三色标记算法详解

发布时间:2026/10/2 7:34:47

【JVM】(5)垃圾收集器ParNewCMS与底层三色标记算法详解 年轻代用的是标记-复制算法因为都是朝生夕死的而old用标记-清除、整理因为大多数存货的复制算法要划一块空的来 费空间没标记的 都清除掉如果你内存大了 再用这种算法就不好了 STW时间比较长 所以引出cms算法垃圾收集算法 分代收集理论根据不同代年轻代、老年代的特点选择对应的垃圾收集算法。复制算法将内存对半分通过可达性分析找出存活对象复制到另一边清空原内存年轻代常用老年代因存活对象多不适用存在浪费空间问题。标记清除算法标记存活对象清除未标记对象存在效率问题存活对象多标记效率低和空间问题产生内存碎片老年代常用。标记整理算法标记存活对象后将其挪到垃圾对象空间避免内存碎片问题老年代常用。 垃圾收集器与算法关系垃圾收集器是垃圾收集算法的具体实现通过一系列 C 类实现收集器功能。产生原因现有垃圾收集器都不完美需不断完善和调优不同场景适用不同收集器。 Serial垃圾收集器有年轻代和老年代版本单线程收集收集时会STW优点是简单、易于理解单核情况下可能效率高年轻代用复制算法老年代用标记整理算法能收集的内存区域较小现在很少使用。Parallel 垃圾收集器有年轻代和老年代版本并行多线程收集可配置收集线程数默认与 CPU 核数相同一般不推荐修改。ParNew 垃圾收集器与 Parallel 并行收集器类似通过在 VM 参数中配置相关参数调用其 C 代码实现。初始标识 只限标记这个JDK1.8 默认收集器若不设置垃圾收集器JDK1.8 默认年轻代和老年代都使用并行垃圾收集器即 Parallel New 和Parallel Old该算法适用于小内存2 - 3G效率尚可但大内存使用会有问题。垃圾收集器使用建议 大内存场景推荐使用 CMS以提升用户体验。 小内存场景1 - 3G 内存使用 Parallel New 和Parallel Old 无太大问题。大于8个g 用g1
延伸阅读

更多相关文章

2026/10/2 20:16:30

编程思维训练:从算法到调试的实战技巧

1. 代码随想录第七天:从零开始的编程思维训练 作为一名从业十年的全栈工程师,我始终认为编程能力的提升不仅在于技术栈的广度,更在于思维方式的锤炼。今天我想分享的是我在第七天代码训练中的一些思考和实践,这些内容特别适合那些…

2026/9/26 22:42:28

3个简单步骤:用Candle快速构建你的第一个Rust机器学习应用

3个简单步骤:用Candle快速构建你的第一个Rust机器学习应用 【免费下载链接】candle Minimalist ML framework for Rust 项目地址: https://gitcode.com/GitHub_Trending/ca/candle 还在为Python机器学习框架的庞大体积和复杂依赖而烦恼吗?想尝试用…

2026/9/28 14:17:03

科研工具介绍 | EndNote 文献管理软件

文章目录 一、软件概述 二、主要功能 1.文献收集与导入 2.文献管理与分类 3. 引文插入与参考文献生成 4. 引用样式与期刊适配 三、适用场景 四、注意事项 五、使用记录 260123 Endonte如何实现文件间移植 260123 txt文件如何导入Endnote 260123 文献样式(Style)导入 260123 电…

2026/10/2 20:13:56

RIP协议原理与三路由器配置排错保姆级指南

做“RIP第一次作业”的时候,我其实挺不屑的。当时心里想的是:都什么年代了,还学RIP这种老协议?直到我在实验里把三条路由器配完,发现路由表里始终少了几条路由,抓包也看不到更新,才意识到这个“…

2026/10/2 20:13:56

需求侧电能共享分布式交易:价值认同建模与ADMM求解

去年帮课题组把"基于价值认同的需求侧电能共享分布式交易策略"从论文标题复现成能跑出结果的Matlab程序时,我最大的感受是:这个方向真正要处理的,不是"电不够分"的问题,而是"交易语言太粗糙"的问题…

2026/10/2 20:13:56

Cursor MCP终极指南:TaoToken统一Key接入与本地调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 20:13:56

逻辑运算符详解:从与或非到短路求值与优先级

刚带完一个零基础班,我发现每次讲到条件判断,总有一批人卡在同一个地方:不是不会写代码,而是理不清“什么时候用 and,什么时候用 or,什么时候又要取反”。说真的,逻辑运算符这个知识点&#xff…

2026/10/2 20:08:56

微信.dat缓存图片恢复与清理工具:XOR异或原理与Python实现

先说一个我自己的经历。某天准备清理微信电脑版占用的几十个G空间,打开文件管理目录,发现里面除了聊天记录数据库,还有一个叫 FileStorage 的文件夹,点进去全是按照日期分的子目录,再点进去,好家伙&#xf…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/2 18:20:53

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/2 0:02:57

PWN入门:从栈溢出原理到ROP链实战

1. 这不是“学PWN”,是重新理解你每天敲的每一行C代码我第一次在CTF赛场上写出能控制程序流的exp时,手抖得连gdb的c命令都输错三次。那道题只有23行C代码,一个gets()调用,一个printf(),一个return——它甚至没开NX&…

2026/10/2 0:02:57

Windows下cudaMallocHost显存占用之谜:WDDM与TCC模式差异及优化方案

1. 一个反直觉的显存占用现象第一次在 Windows 上看到cudaMallocHost把显存吃掉的时候,我的反应是打开任务管理器反复确认了三遍。明明调用的是主机端锁页内存分配,按 CUDA 文档的说法,这块内存应该落在系统 RAM 里,跟 GPU 的显存…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑