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调优参数。

相关推荐
小蒜学长7 分钟前
基于数据挖掘的京东商城商品推荐系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·推荐系统·个性化推荐
IT_陈寒15 分钟前
Vue开发实战:从入门到精通
前端·人工智能·后端
长不大的杨瑞杰25 分钟前
把 Spring Boot 接口变成 AI 工具:OpenAPI、参数映射与异常语义化实战
人工智能·spring boot·后端
张彦峰ZYF29 分钟前
一条消息的丢与重:Kafka 与 RabbitMQ 可靠投递的确认、位点、死信与幂等全链路
后端·kafka·消息队列·rabbitmq·isr·解耦与削峰·丢失与重复
高频因子挖掘机36 分钟前
自选股票列表接入行情 API 时,如何避免漏查、重复查和查错标的?
后端·github·api
高频因子挖掘机1 小时前
量化项目的数据架构怎么设计?从第一份行情到可扩展的 Python 研究环境
后端·github·api
考虑考虑9 小时前
JDK26中的Map.ofLazy
java·后端·java ee
云浪11 小时前
Go 并发实战:从零实现一个高并发安全的任务调度器
javascript·后端·go
苏三的开发日记11 小时前
Docker 启动顺序优化(CentOS / Ubuntu)
后端
高频因子挖掘机12 小时前
同一交易日出现重复 K 线:去重前先确认时间、来源和粒度
后端·github·api