JVM参数类型

JVM的参数类型

1. 标准参数
* -help
* -server , -client
* -version . -showversion
* -cp , -classpath

2. X参数
* 非标准化参数(在各个JDK版本中可能会变,但是变动比较小)
* -Xint : 解释执行

11464886-ce28c772027fcec1.png

  • -Xcomp : 编译执行 第一次使用就编译成本地代码


    11464886-7bc14c205218b309.png
  • -Xmixed :混合模式,JVM自己来决定是否编译成本地代码


    11464886-ae3eb205bf5c0de4.png

3. XX参数

  • 非标转化参数
  • 相对不稳定
  • 主要用于JVM调优和Debug
  • 参数分类
  1. Boolean类型 格式:-XX:[+-]<name> 表示启用或者禁用name属性。比如-XX+UseConcMarkSweepGc , -XX:+UseG1Gc ([+]号代表启用,[-]代表禁用)

  2. 非Boolean类型 格式:-XX:<name>=<value>表示name属性的值是value.比如 -XX:MaxGcPauseMillis=500 , -XX:GCTimeRatio=19

-Xmx -Xms
1. 不是X参数,而是XX参数
2. -Xms 等价于 -XX:InitialHeapSize 初始化的堆大小
3. -Xmx 等价于 -XX:MaxHeapSize 最大化的堆大小
4. jinfo -flag MaxHeapSize <进程编号> -XX:MaxHeapSize=994050048 运行时最大的堆大小
5. jinfo -flag ThreadStackSize <进程编号> -XX:ThreadStackSize=1024K 启动一个线程需要的内存大小

修改 JVM 参数有多种方法,以下为你详细介绍: ### IDE 启动时设置 在 IntelliJ IDEA 或 Eclipse 启动时,可以设置 JVM options。例如,在 IDEA 中: - 对于 Gradle 项目,可在 `Run` -> `Edit Configurations` 中,找到对应的 `VM options` 输入框,输入需要的 JVM 参数,如 `-Xms100M -Xmx200M`。 - 对于 Maven 项目,也可在 `Run` -> `Edit Configurations` 里的 `VM options` 处进行设置。 ### 命令行中设置 运行 Java 程序时,可在命令行中直接设置 JVM 参数。例如,运行一个 Java 程序的命令如下: ```bash java -XX:+UseG1GC -jar xxx.jar ``` 此命令启用了 G1 垃圾收集器并运行 `xxx.jar` 文件。 ### Tomcat 中修改 在 Tomcat 环境下,可修改 `catalina.sh` 文件(Linux 系统)或 `catalina.bat` 文件(Windows 系统)。在文件中添加或修改 JVM 参数,例如在 `catalina.sh` 中添加: ```bash JAVA_OPTS="-Xms100M -Xmx200M" ``` ### 实时运行时修改 使用 `jinfo` 命令可在 Java 程序实时运行时修改 JVM 参数,且无需重启程序。不过,并非所有的 JVM 参数都支持实时修改。例如,查看某个 Java 进程的所有参数: ```bash jinfo -flags <pid> ``` 其中 `<pid>` 是 Java 进程的进程 ID。修改某个参数: ```bash jinfo -flag +UseG1GC <pid> ``` 此命令为指定的 Java 进程启用 G1 垃圾收集器。 ### 配置文件中设置 在 Eclipse 中,可在 `eclipse.ini` 文件中设置 JVM 参数,如 `-vmargs -Xms40m -Xmx256m`,`-vmargs` 表示以下为虚拟机设置参数,可修改其中的参数值。另外,`eclipse.ini` 内还可以设置非堆内存,如 `-XX:PermSize=56m`,`-XX:MaxPermSize=128m` [^2]。 ### JVM 参数类型及示例 JVM 参数有 3 种类型,分别是标准参数、`-X` 参数(使用较少)和非标准参数(随着 JDK 版本变动),其中 `-XX` 参数使用较多 [^1]: - **Boolean 类型**:使用 `-XX:[+/-]name` 来启用或停止某个功能,例如 `-XX:+UseG1GC` 启用 G1 垃圾收集器,`-XX:-UseG1GC` 停止 G1 垃圾收集器。 - **非 Boolean 类型**:使用 `-XX:name=value` 的形式,例如 `-XX:MaxHeapSize=100M` 设置堆内存大小。 - **其他参数(由 `-XX` 参数变形)**:例如 `-Xms100M` 等于 `-XX:InitialHeapSize=100M`,`-Xmx100M` 等于 `-XX:MaxHeapSize=100M`,`-Xss100k` 等于 `-XX:ThreadHeapSize=100k` [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值