暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
030、G1分代回收原理深度图解:为什么回收性能比传统GC更好.pdf
66
7页
2次
2023-11-27
免费下载
3019 人次阅读 2019-07-30 07:00:00
首页
030、G1分代回收原理深度图解:为什么回收性能比传统GC更好
图文
详情 评论
G1分代回收原理深度图解:
为什么回收性能比传统GC更好?
给大家推荐一套质量极高的Java面试训练营课程:
作者是中华石杉,石杉老哥是我之前所在团队的 Leader ,骨灰级的技术神牛!
大家可以点击下方链接,了解更多详情,并进行试听:
21天互联网Java进阶面试训练营(分布式篇)
重要说明:
最近不少同学留言反馈,说希望建立一个微信群,供大家进行JVM专栏的学习交流。
这个提议非常好,不过管理微信群是一件挺费时的事儿,我平时工作较忙,实在抽不出时间来进行群管理.
正好石杉老哥的面试训练营建了微信交流群,并且还请了不少一线大厂的助教。
因此跟石杉老哥商量了一下,决定厚着脸皮“鸠占鹊巢”。购买了我JVM专栏的小伙伴,可以加入石杉老哥的微信群,在群里讨论交流
技术。
如何加群,请参见文末(注:如果之前已经加过的,就不要重复加群了
1、前文回顾
上篇文章我们给大家分析了一下G1垃圾回收器设计的思想,主要是把内存拆分为很多个小的Region,然后新生代和老年代各自对应一
些Region,回收的时候尽可能挑选停顿时间最短以及回收对象最多的Region,尽量保证达到我们指定的垃圾回收系统停顿时间。
这篇文章我们继续一步一图,把G1垃圾回收器工作的时候,从对象在内存中的分配到垃圾回收的触发,给大家来分析一下。
2、如何设定G1对应的内存大小
大家看如下的图,我们都知道G1对应的是一大堆的Region内存区域,每个Region的大小是一致的。
那么首先思考两个问题:到底有多少个Region呢?每个Region的大小是多大呢?
其实这个默认情况下自动计算和设置的,我们可以给整个堆内存设置一个大小,比如说用“-Xms”和“-Xmx”来设置堆内存的大小。
然后JVM启动的时候一旦发现你使用的是G1垃圾回收器,可以使用“-XX:+UseG1GC”来指定使用G1垃圾回收器,此时会自动用堆大
小除以2048
因为JVM最多可以有2048个Region,然后Region的大小必须是2的倍数,比如说1MB、2MB、4MB之类的。
比如说堆大小是4G,那么就是4096MB,此时除以2048个Region,每个Region的大小就是2MB。大概就是这样子来决定Region的数
量和大小的,大家一般保持默认的计算方式就可以
如果通过手动方式来指定,则是“-XX:G1HeapRegionSize”,如下图。
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜