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。

更多资料

相关推荐
无心水1 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
Boilermaker19928 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
saoys8 小时前
Opencv 学习笔记:图像掩膜操作(精准提取指定区域像素)
笔记·opencv·学习
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_999 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子9 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34169 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
电子小白1239 小时前
第13期PCB layout工程师初级培训-1-EDA软件的通用设置
笔记·嵌入式硬件·学习·pcb·layout
恋爱绝缘体19 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
weixin_4657909110 小时前
电动汽车有序充电:电网负荷削峰填谷的新利器
jvm