JVM 启动参数

jvm的启动参数随版本发展可以分为三大类:标准参数、非标准参数和非Stable参数。

  1. 标准参数:所有JVM实现都必须支持这些参数,且向下兼容。

如:-jar -cp -verbose

  1. 非标准参数:大多数JVM实现都支持这些参数,但不保证向下兼容。

如:-Xms -Xmx -Xss -Xmn

  1. 非Stable参数:此类参数各个JVM实现会有所不同,将来可能会随时取消,需要慎重使用。

如:-XX:NewSize -XX:MaxNewSize

应用场景分类:

  • Trace跟踪参数
  • 堆的分配参数
  • 栈的分配参数
  • JVM其他参数

Ps:常用参数说明

-Xms 和 -Xmx:这两个参数用于设置JVM的初始堆大小(Xms)和最大堆大小(Xmx)。堆是JVM用于存储对象实例的内存区域。例如,-Xms512m -Xmx1024m 表示初始堆大小为512MB,最大堆大小为1024MB。

-Xss:用于设置JVM为每个线程分配的栈内存大小。栈内存用于存储方法调用的局部变量和操作数栈等信息。例如,-Xss256k 表示每个线程的栈大小为256KB。

-XX:+UseConcMarkSweepGC 和 -XX:+UseParallelGC:这两个参数用于选择JVM的垃圾收集器。前者启用CMS垃圾收集器,后者启用并行垃圾收集器。根据应用程序的特点和需求,选择合适的垃圾收集器可以提高性能和减少停顿时间。

-XX:SurvivorRatio:用于设置新生代中Eden区与Survivor区的大小比例。Eden区用于存放新创建的对象,Survivor区用于存放经历了一次或多次垃圾收集后仍然存活的对象。例如,-XX:SurvivorRatio=8 表示Eden区与Survivor区的大小比例为8:1:1。

-XX:MaxPermSize 和 -XX:MetaspaceSize:这两个参数用于设置JVM的永久代或元空间的大小。永久代用于存储类的元数据信息,而元空间是Java 8及以后版本中替代永久代的内存区域。例如,-XX:MaxPermSize=128m 表示永久代的最大大小为128MB。

-XX:+PrintGCDetails 和 -XX:+PrintGCDateStamps:这两个参数用于在控制台输出详细的垃圾收集日志和日志的时间戳。通过分析这些日志,可以了解垃圾收集的行为和性能瓶颈。

相关推荐
萧瑟余晖6 小时前
Spring Batch核心模型与快速上手详解
java·spring·batch
缓慢更新6 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
LMT流氓兔8 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
wangbing11259 小时前
平台介绍-modbus设备调试
java
西索斯coding9 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
wuminyu10 小时前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
Flynn Liang10 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling
乌暮11 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
学长毕设12 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
金銀銅鐵12 小时前
[Java] 用纯 Swing 做一个《論語·學而》阅读器
java·ai编程·交互设计