Jvm参数——规律记忆方法

根据JVM调优参数的命名规律和功能,可以将其分类归纳如下:

一、参数类型与命名规律

  1. 标准参数-开头)

    稳定性高,如-version-help

  2. 非标准参数-X开头)

    功能稳定但可能随版本变化,命名多采用英文缩写

    • -XmsM emory Start(初始堆内存)
    • -XmxM emory MaX(最大堆内存)
    • -XmnNew Generation(新生代大小)
    • -XssS tack Size(线程栈大小)
  3. 高级参数-XX开头)

    命名规则更复杂,常见模式:

    • 布尔开关-XX:+UseG1GC(启用G1)、-XX:-UseTLAB(禁用TLAB)
    • 数值配置-XX:NewRatio=2(新生代:老年代=1:2)
    • 缩写组合-XX:MaxMetaspaceSize(元空间最大容量)

二、核心参数分类与示例

1. 内存管理

参数 作用 记忆规律(英文缩写)
-Xms512m 初始堆内存 M emory Start
-Xmx4g 最大堆内存 M emory MaX
-Xmn2g 新生代大小 New Generation
-XX:MetaspaceSize=256m 元空间初始大小 Meta(元数据)+ Space(空间)
-XX:MaxDirectMemorySize=1g 堆外内存限制 Direct(直接)+ Memory

2. 垃圾回收(GC)

参数 作用 记忆规律
-XX:+UseG1GC 启用G1垃圾回收器 Use + G1(算法名)
-XX:MaxGCPauseMillis=200 最大GC停顿时间目标 Max + GC Pause(停顿)
-XX:SurvivorRatio=8 Eden与Survivor区比例(8:1:1) Survivor(幸存区)+ Ratio(比例)
-XX:MaxTenuringThreshold=15 对象晋升老年代年龄阈值 Tenuring(晋升)+ Threshold(阈值)

3. 线程与并发

参数 作用 记忆规律
-Xss1m 线程栈大小 S tack Size
-XX:ParallelGCThreads=4 并行GC线程数 Parallel(并行)+ GC线程
-XX:ConcGCThreads=2 并发GC线程数 Concurrent(并发)

4. 性能调优

参数 作用 记忆规律
-XX:+UseCompressedOops 启用压缩指针(节省内存) Compressed (压缩)+ O bject P ointers
-XX:+DoEscapeAnalysis 开启逃逸分析(栈上分配对象) Escape(逃逸)+ Analysis(分析)

三、记忆规律总结

  1. 参数前缀

    • -X:非标准参数,多用于内存和基础配置。
    • -XX:高级调优,覆盖GC、线程、元数据等。
  2. 缩写逻辑

    • 单字母缩写 :如ms(Memory Start)、mx(Memory Max)。
    • 单词组合 :如NewRatio(新生代比例)、SurvivorRatio(幸存区比例)。
    • 功能描述 :如UseG1GC(使用G1回收器)、HeapDumpOnOutOfMemoryError(内存溢出时导出堆快照)。
  3. 版本演进

    • JDK 8后PermSizeMetaspaceSize取代。
    • JDK 9后G1成为默认GC。

四、调优建议

  1. 堆内存-Xms-Xmx设为相同值,避免动态扩容开销。
  2. GC选择:低延迟选G1/ZGC,高吞吐选Parallel GC。
  3. 监控工具 :结合jstatjmap和GC日志分析瓶颈。

通过理解参数命名规律,可以更高效地记忆和组合使用JVM调优参数。

相关推荐
喵手26 分钟前
如何利用Java的Stream API提高代码的简洁度和效率?
java·后端·java ee
掘金码甲哥32 分钟前
全网最全的跨域资源共享CORS方案分析
后端
m0_4805026440 分钟前
Rust 入门 生命周期-next2 (十九)
开发语言·后端·rust
张醒言1 小时前
Protocol Buffers 中 optional 关键字的发展史
后端·rpc·protobuf
鹿鹿的布丁1 小时前
通过Lua脚本多个网关循环外呼
后端
墨子白1 小时前
application.yml 文件必须配置哇
后端
xcya1 小时前
Java ReentrantLock 核心用法
后端
用户466537015051 小时前
如何在 IntelliJ IDEA 中可视化压缩提交到生产分支
后端·github
小楓12011 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
天天摸鱼的java工程师1 小时前
Java 解析 JSON 文件:八年老开发的实战总结(从业务到代码)
java·后端·面试