java17 gc笔记

示例

sh 复制代码
-Xms32m -Xmx32m -Xlog:gc*

-Xms32m -Xmx32m -Xlog:gc*:logs/gc.log:time

-Xms1g -Xmx2g -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=15 -Xlog:gc*:logs/gc.log:time

-Xms512m -Xmx1g -XX:+UseZGC -Xlog:gc*:logs/gc.log:time

-Xms512m -Xmx1g -XX:+UnlockExperimentalVMOptions -XX:+UseEpsilonGC -Xlog:gc*:logs/gc.log:time

-Xms512m -Xmx1g -Xlog:gc*:file=logs/gc.log:time,level,tags

-Xms512m -Xmx1g -XX:+UseParallelGC -Xlog:gc*:logs/gc.log:time

-Xms512m -Xmx1g -XX:+UseConcMarkSweepGC -Xlog:gc*:logs/gc.log:time    Unrecognized VM option 'UseConcMarkSweepGC'

-Xms512m -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc*:logs/gc.log:time

-Xms512m -Xmx1g -XX:+UseShenandoahGC -Xlog:gc*:logs/gc.log:time    Option -XX:+UseShenandoahGC not supported

-Xss512k -Xlog:gc*:logs/gc.log:time

-Xms512m -Xmx1g -XX:+DoEscapeAnalysis -Xlog:gc*:logs/gc.log:time

常见的JVM调优参数

sh 复制代码
-Xms512m     设置初始堆内存大小。
-Xmx1g       设置最大堆内存大小。
-XX:NewRatio=2     设置新生代与老年代的比率。
-XX:SurvivorRatio=8    设置Eden区与Survivor区的比率。
-XX:MaxTenuringThreshold     设置新生代垃圾进入老年代的年龄阈值。
-XX:MetaspaceSize        设置初始元空间大小。
-XX:MaxMetaspaceSize     设置最大元空间大小。
-XX:MetaspaceSize=128m 
-XX:MaxMetaspaceSize=128m 
-XX:+UseG1GC     启用G1垃圾收集器。
-XX:MaxGCPauseMillis=200    设置最大暂停时间目标(GC引起的暂停时间短于200毫秒)来优化GC性能
-XX:+DoEscapeAnalysis       启用逃逸分析

PrintGCDateStamps 在 java17 中已弃用

对于 JDK 11 及以上版本,PrintGCDateStamps 已被弃用,可以使用新的日志记录参数 -Xlog:gc*:logs/gc.log:time

关于MetaspaceSize的说明

复制代码
MetaspaceSize 表示的并非是元空间的大小,它的含义是:主要控制matesaceGC发生的初始阈值,也就是最小阈值。
也就是说当使用的matespace空间到达了MetaspaceSize的时候,就会触发Metaspace的GC。

MaxMetaspaceSize表示的是保证committed的内存不会超过这个值,一旦超过这个值就会触发GC。

注意:在jvm启动的时候,并不会分配MaxMetaspaceSize这么大的一块内存出来,metaspace是可以一直扩容的,直到到达MaxMetaspaceSize。

更多资料

相关推荐
南境十里·墨染春水2 小时前
C++传记(面向对象)虚析构函数 纯虚函数 抽象类 final、override关键字
开发语言·c++·笔记·算法
无巧不成书02182 小时前
30分钟入门Java:从历史到Hello World的小白指南
java·开发语言
zs宝来了4 小时前
Playwright 自动发布 CSDN 的完整实践
java
中屹指纹浏览器5 小时前
2026基于内核隔离的浏览器环境虚拟化技术在企业数字化运营中的应用研究
经验分享·笔记
吴声子夜歌5 小时前
TypeScript——基础类型(三)
java·linux·typescript
一轮弯弯的明月6 小时前
Python基础-速通秘籍(下)
开发语言·笔记·python·学习
庞轩px6 小时前
模拟面试回答第十三问:JVM内存模型
jvm·面试·职场和发展
DynamicsAgg7 小时前
企业数字化底座-k8s企业实践系列第二篇pod创建调度
java·容器·kubernetes
森林里的程序猿猿7 小时前
并发设计模式
java·开发语言·jvm