Jvm参数——规律记忆方法

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

一、参数类型与命名规律

  1. 标准参数 (-开头)

    稳定性高,如-version、-help。

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

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

    • -Xms:M emory Start(初始堆内存)
    • -Xmx:M emory MaX(最大堆内存)
    • -Xmn:New Generation(新生代大小)
    • -Xss:S 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后PermSize被MetaspaceSize取代。
    • JDK 9后G1成为默认GC。

四、调优建议

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

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

相关推荐
噢,我明白了4 小时前
java中唯一键和幂等键的应用
java·后端
GreenTea4 小时前
我把 Agent 的 while 循环拆掉了:一种你可能没想到的 Agent 架构
前端·后端·架构
考虑考虑4 小时前
synchronized字符串常量
java·后端·java ee
颜进强5 小时前
16 · NestJS LifecycleEvents 生命周期事件:五个钩子、三条边界,和 rag-server 的优雅停机
前端·后端·ai编程
GetcharZp5 小时前
定位不再一个个吐坐标:英伟达 LocateAnything 上手全攻略
后端
郑州光合科技余经理6 小时前
同城电商系统:库存变更怎么同步到订单
java·开发语言·前端·后端·uni-app·php·ai编程
我叫黑大帅6 小时前
Go日志库工程选型与逃逸分析评测报告
后端·面试·go
IT_陈寒9 小时前
JavaScript闭包的这个坑,我居然今天才爬出来
前端·人工智能·后端
Thneonl9 小时前
消息队列选型决策树:RabbitMQ vs Kafka vs Redis Streams
后端·架构