当前位置:网站首页>G1垃圾收集器中重要的配置参数及其默认值
G1垃圾收集器中重要的配置参数及其默认值
2022-06-28 13:07:00 【码拉松】
-XX:MaxGCPauseMillis
期望的最大GC暂停时间,默认为:200ms。
注意:G1的默认策略是期望在吞吐量与延迟之间保持平衡,所以如果你希望获得较高的吞吐量,那么可以通过减少GC暂停的频率来实现,而减少GC暂停频率的主要方式就是增加最大GC暂停时间。
-XX:GCPauseTimeInterval
最大暂停时间间隔的目标。
默认情况下,G1不设置任何目标,允许G1在极端情况下连续执行垃圾回收。
-XX:ParallelGCThreads
垃圾收集暂停期间用于并行工作的最大线程数。
默认根据运行JVM计算机的可用线程数决定,计算方式:当进程可用的CPU线程数小于等于8时,则直接使用该数,否则,将设置为:8 + (n - 8) * (5/8) 。
在每次暂停时,使用的最大线程数还需要考虑最大堆的限制,即参数:-XX:HeapSizePerGCThread。
-XX:ConcGCThreads
用于并发工作的最大线程数,默认情况下,此值为:-XX:ParallelGCThreads除以4。
如果你想要能够更快的完成并发标记,则可以适当增加并发标记的线程数量。
-XX:+G1UseAdaptiveIHOP
使用自适应IHOP。
Initiating Heap Occupancy Percent(触发并发启动收集的阈值),G1通过观察标记需要多长时间以及标记周期期间通常在老年代分配多少内存来自动确定最佳IHOP,此功能称为自适应IHOP。
如果此功能开启,则G1将使用-XX:InitiatingHeapOccupancyPercent=45的值做为并发启动收集的阈值。
如果G1没有很好的预测出,触发并发标记的老年代占用率,则建议禁用:-XX:-G1UseAdaptiveIHOP,并自行调整-XX:InitiatingHeapOccupancyPercent的阈值。
-XX:G1HeapRegionSize
G1划分出的每一个Region的大小。
默认会根据最大堆的大小,按照划分出2048个region来计算出每个region的大小,根据人体工程学确定的最大值为32M,用户可自定义的范围是1~512M,且必须是2的幂。
-XX:G1NewSizePercent、-XX:G1MaxNewSizePercent
新生代占堆内存的大小,初始为-XX:G1NewSizePercent设置的值,默认为:5%,G1会根据满足暂停时间的值而对占比进行调整,但最大不会超过-XX:G1MaxNewSizePercent设置的值,默认为:60%。
-XX:G1HeapWastePercent
为了更有效的进行垃圾回收,G1会从Collection Set中选择释放一些对内存空间增益更大的region,其中有一项参考就是可回收空间要大于XX:G1HeapWastePercent设置的值,默认为:5%,表示占当前堆空间的5%。
-XX:G1MixedGCCountTarget
在混合回收阶段,G1期望能够最大化的的进行回收,但同时还需要考虑XX:MaxGCPauseTimeMillis,因此通常会把一次大的混合回收,拆分为多次,这个次数就由XX:G1MixedGCCountTarget决定,默认为:8次,这样就减少了每一次混合回收的暂停时间,以达到XX:MaxGCPauseTimeMillis的目标值。
-XX:G1MixedGCLiveThresholdPercent
在混合回收阶段,会避免回收那些需要大量时间来处理的region,那么如果鉴定是否需要大量时间来处理呢?那么在大多数情况下,占用率高的region就需要耗费更多的时间来处理,XX:G1MixedGCLiveThresholdPercent就是设置的存活对象占用率的阈值,默认为:85%,也就是如果一个region中的存活对象占比达到此re-XX:GCPauseTimeInterval= <尔格>gion的85%,那么就不会回收这个region。
注意:以下三个参数,默认情况下都是根据环境以符合人体工程学的方式确定的
-XX:GCPauseTimeInterval
-XX:ParallelGCThreads
-XX:ConcGCThreads
人体工程学:人机工程学是 Java 虚拟机 (JVM) 和垃圾收集启发式(例如基于行为的启发式)提高应用程序性能的过程。
边栏推荐
- pytorch模型
- Here comes Wi Fi 7. How strong is it?
- Matlab plotyy coordinate axis setting, [reprint] example of MATLAB plotyy drawing double ordinate graph [easy to understand]
- 1015.摘花生
- 在线JSON转PlainText工具
- 一文搞懂leveldb写操作
- PHP gets the number of digits and replaces it with the specified mantissa
- Manjaro easyconnecy error: libgtk-x11-2.0 so. 0: cannot open shared object file: No such file or directory
- Validateur async. Vérificateur de données JS
- 如何在熊市中寻找机会?
猜你喜欢

Commonly used "redmine" for # test bug
![BUUCTF:[WUSTCTF2020]朴实无华](/img/0f/a7973d3f7593f2464e48609e27d7bd.png)
BUUCTF:[WUSTCTF2020]朴实无华

投资98万美元的Saas项目失败了

中二青年付杰的逆袭故事:从二本生到 ICLR 杰出论文奖,我用了20年

1015.摘花生

一文抄 10 篇!韩国发表的顶级会议论文被曝抄袭,第一作者是“原罪”?

VS2012 VC新建一个空白窗口应用

Here comes Wi Fi 7. How strong is it?

scratch旅行相册 电子学会图形化编程scratch等级考试一级真题和答案解析2022年6月

5A synchronous rectifier chip 20V to 12v2a/5v4.5a high current 24W high power synchronous rectifier chip high current step-down IC fs2462
随机推荐
Commonly used "redmine" for # test bug
June 28, 2022 Daily: Lecun's latest paper: the road to autonomous machine intelligence
Writing skills of resume
Mobile web training day-2
flutter 系列之:flutter 中常用的 GridView layout 详解
Realization of a springboard machine
移动Web实训DAY-2
Matlab plotyy coordinate axis setting, [reprint] example of MATLAB plotyy drawing double ordinate graph [easy to understand]
[cloud native] can self-service reports and Bi do so many things?
泛海微FH511单片机IC方案小家电LED照明MCU丝印FH511
为什么越来越多的用户放弃 Swagger,选择Apifox
List set to array
全志V853芯片 如何在Tina V85x平台切换sensor?
How to display the server list of the electric donkey, and how to update the eMule server list
【MySQL从入门到精通】【高级篇】(三)MySQL用户的创建_修改_删除以及密码的设置
股票网上开户及开户流程怎样?手机开户是安全么?
VS2012 VC新建一个空白窗口应用
在线JSON转PlainText工具
Mature case and source code of hash quiz game system development technology
async-validator. JS data verifier