ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【JVM 2】HotSpot VM GC 的种类,kalilinux教程推荐

2021-12-19 18:31:17  阅读:205  来源: 互联网

标签:do pause default VM HotSpot concurrent XX kalilinux collector


二、CMS GC Incremental mode

=============================

当要使用 concurrent low pause collector时,在java的opt里加上 -XX:+UseConcMarkSweepGC。concurrent low pause collector还有一种为CPU少的机器准备的模式,叫Incremental mode。这种模式使用一个CPU来在程序运行的过程中GC,只用很少的时间暂停程序,检查对象存活。

在Incremental mode里,每个收集过程中,会暂停两次,第二次略长。第一次用来,简单从root查询存活对象。第二次用来,详细检查存活对象。整个过程如下:

  • stop all application threads; do the initial mark; resume all application threads(第一次暂停,初始话标记)

  • do the concurrent mark (uses one procesor for the concurrent work)(运行是标记)

  • do the concurrent pre-clean (uses one processor for the concurrent work)(准备清理)

  • stop all application threads; do the remark; resume all application threads(第二次暂停,标记,检查)

  • do the concurrent sweep (uses one processor for the concurrent work)(运行过程中清理)

  • do the concurrent reset (uses one processor for the concurrent work)(复原)

当要使用Incremental mode时,需要使用以下几个变量:

-XX:+CMSIncrementalMode default: disabled 启动i-CMS模式(must with -XX:+UseConcMarkSweepGC)

-XX:+CMSIncrementalPacing default: disabled 提供自动校正功能

-XX:CMSIncrementalDutyCycle= default: 50 启动CMS的上线

-XX:CMSIncrementalDutyCycleMin= default: 10 启动CMS的下线

-XX:CMSIncrementalSafetyFactor= default: 10 用来计算循环次数

-XX:CMSIncrementalOffset= default: 0 最小循环次数(This is the percentage (0-100) by which the incremental mode duty cycle is shifted to the right within the period between minor collections.)

-XX:CMSExpAvgFactor= default: 25 提供一个指导收集数

SUN推荐的使用参数是:

-XX:+UseConcMarkSweepGC \

-XX:+CMSIncrementalMode \

-XX:+CMSIncrementalPacing \

-XX:CMSIncrementalDutyCycleMin=0 \

-XX:CMSIncrementalDutyCycle=10 \

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

XX:+PrintGC Details \

-XX:+PrintGCTimeStamps \

-XX:-TraceClassUnloading

注:如果使用throughput collector和concurrent low pause collector,这两种垃圾收集器,需要适当的挺高内存大小,以为多线程做准备。

三、如何选择collector

===================

app运行在单处理器机器上且没有pause time的要求,让vm选择单线程收集器serial collector。

重点考虑peak application performance(高性能),没有pause time太严格要求,选择并行收集器_parallel collector。_

重点考虑response time,pause time要小,选择并发收集器_concurrent collector。_

往期精彩内容:

Java知识体系总结(2021版)

标签:do,pause,default,VM,HotSpot,concurrent,XX,kalilinux,collector
来源: https://blog.csdn.net/m0_65322636/article/details/122027538

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有