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。

更多资料

相关推荐
编啊编程啊程26 分钟前
gRPC从0到1系列【6】
java·rpc·kafka·dubbo·nio
许泽宇的技术分享30 分钟前
AudioNotes:当FunASR遇见Qwen2,音视频转笔记的技术革命
笔记·音视频
蒙奇D索大31 分钟前
【数据结构】图论核心应用:关键路径算法详解——从AOE网到项目管理实战
数据结构·笔记·学习·考研·算法·图论·改行学it
Olrookie1 小时前
若依前后端分离版学习笔记(十八)——页面权限,页签缓存以及图标,字典,参数的使用
vue.js·笔记·学习
He BianGu1 小时前
【笔记】在WPF中Decorator是什么以及何时优先考虑 Decorator 派生类
笔记·wpf
宸津-代码粉碎机1 小时前
Redis 进阶:跳出缓存局限!7 大核心场景的原理与工程化实践
java·人工智能·redis·python
wan5555cn1 小时前
AI视频生成技术:从想象到现实的视觉革命
人工智能·笔记·深度学习·算法·音视频
极客先躯1 小时前
Spring Statemachine 架构详解
java·spring·架构
ccccczy_1 小时前
Java微服务容器化与 Kubernetes 编排实战:从 Docker 多阶段构建到云原生弹性扩展
java·docker·kubernetes·springboot·microservices·cloudnative·containerization
沉木渡香2 小时前
VSCode中Java开发环境配置的三个层级(Windows版)1-3
java·windows·vscode