问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JVM 技术详解:常见的 GC 算法(Parallel/CMS/G1)

发布网友 发布时间:2023-01-22 19:36

我来回答

1个回答

热心网友 时间:2023-07-05 02:12

学习了 GC 算法的相关概念之后,我们将介绍在 JVM 中这些算法的具体实现。首先要记住的是,大多数 JVM 都需要使用两种不同的 GC 算法——一种用来清理年轻代,另一种用来清理老年代。

我们可以选择 JVM 内置的各种算法。如果不通过参数明确指定垃圾收集算法,则会使用相应 JDK 版本的默认实现。本章会详细介绍各种算法的实现原理。

串行 GC 对年轻代使用 mark-copy(标记—复制)算法,对老年代使用 mark-sweep-compact(标记—清除—整理)算法。

两者都是单线程的垃圾收集器,不能进行并行处理,所以都会触发全线暂停(STW),停止所有的应用线程。

因此这种 GC 算法不能充分利用多核 CPU。不管有多少 CPU 内核,JVM 在垃圾收集时都只能使用单个核心。

要启用此款收集器,只需要指定一个 JVM 启动参数即可,同时对年轻代和老年代生效:

该选项只适合几百 MB 堆内存的 JVM,而且是单核 CPU 时比较有用。

对于服务器端来说,因为一般是多个 CPU 内核,并不推荐使用,除非确实需要* JVM 所使用的资源。大多数服务器端应用部署在多核平台上,选择 串行 GC 就意味着人为地*了系统资源的使用,会导致资源闲置,多余的 CPU 资源也不能用增加业务处理的吞吐量。

关于串行垃圾收集器的日志内容,我们在后面的内容《GC 日志解读与分析》之中进行详细的讲解。

并行垃圾收集器这一类组合,在年轻代使用“标记—复制(mark-copy)算法”,在老年代使用“标记—清除—整理(mark-sweep-compact)算法”。年轻代和老年代的垃圾回收都会触发 STW 事件,暂停所有的应用线程来执行垃圾收集。两者在执行“标记和复制/整理”阶段时都使用多个线程,因此得名“Parallel”。通过并行执行,使得 GC 时间大幅减少。

通过命令行参数 -XX:ParallelGCThreads=NNN 来指定 GC 线程数,其默认值为 CPU 核心数。可以通过下面的任意一组命令行参数来指定并行 GC:

并行垃圾收集器适用于多核服务器,主要目标是增加吞吐量。因为对系统资源的有效使用,能达到更高的吞吐量:

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
脚崴了挂什么科、急急急 linux 解压缩工具--tar命令 生日祝福语闺蜜 简短独特暖心 QQ有哪些隐藏的图标??他们分别是什么??怎么样点亮?? QQ业务的各种图标怎么点亮? qq怎么点亮图标和名字 诗中书万象=求下联 大爱如山藏万象下联 中国电子展:电位器和可调电阻的区别是什么?这四点很明显 电位器的接线方法是什么 电位器的工作原理如何 2013年张继科微博有粉丝吗 新的切菜板怎么处理 有时候我也想哭的作文 鼠标在桌面上一直转圈怎么办啊? 分享别人快手订单怎么没有物流信息 梦见和同事达成通奸 梦见亲人通奸 ps中退回快捷键是什么呢,Photoshop中退回快捷键怎么使用的? 1997年属牛巨蟹座性格分析 京东共读怎么看书 京东共读如何看书 《京东阅读》的使用方法介绍 柠檬酸是什么东西 柠檬酸介绍 没有好友辅助怎么找回 梦见自己在挖洞找东西 梦见挖坑找东西 怎么删除花呗记录消费记录 淘宝网上如何设置隐藏帐单 100万二手豪车保险贵吗 龙渊是什么意思 电脑不能正常开机 提示ARES C64K GC的复制算法和标记整理算法 分代GC算法 分代gc回收算法 考卫健委公务员要医学专业吗 九牧晾衣架摇杆怎么拆下来 梦见屋顶白雪是什么意思 建行卡不小心被冻结后有哪些方法可以解冻 支付宝不绑定身份证 银行卡可以转账吗 正品,外贸,原单有什么区别 有谁清楚联通开热点要不要另外收费? 产后塑身衣好还是收腹带好,生完宝宝什么时候可以穿塑身衣 求助,收腹带和塑身衣该选哪种 mastermind这个牌子什么意思 mastermind的英文意思 信用卡上的mastermind是什么意思 termind是什么意思 mastermind VILLA什么意思 微信提现告诉我成功了,可是卡里没钱呀,怎么办 车内能不能放风油精? 车上弄了风油精怎么去掉还不腐蚀车