已解决
JVM 参数
来自网友在路上 165865提问 提问时间:2023-10-11 07:56:52阅读次数: 65
最佳答案 问答题库658位专家为你答疑解惑
JVM 参数类型大致分为以下几类:
- 标准参数(-):保证在所有的 JVM 实现都支持的参数
- 非标准参数(-X):通用的,特定于 HotSpot 虚拟机的参数,这些参数不保证在所有 JVM 实现中被支持,且可能会更改
- 高级运行时参数(-XX):此类参数不建议随意使用,这些参数用于调整 HotSpot VM 的特定区域,不保证所有的 JVM 实现都支持,并且可能会发生改变
参数分为布尔类型和值类型,布尔类型被用于启用默认禁用的特性,或者禁用默认启动的特性,这类参数不用指定值,使用 + 号来启动参数如 -XX:+OptionName
,使用 - 号来禁用布尔如 -XX:-OptionName
。
值类型的参数可以使用 :或者 = 来分隔参数名和参数值,或者值直接跟在参数后面,如果参数值要指定字节大小,你可以不使用后缀,或者使用 k/K 来表示 KB,使用 m/M 来表示 MB,使用 g/G 来表示 GB,如果参数值要指定百分比,你需要使用 0-1 的数字,比如 0.25 表示 25%。
标准参数
标准参数,可以理解为 java 命令的可选项,可以使用 java 命令查看标准参数:
标准参数的含义:
非标准参数
非标准参数是特定于 HotSpot VM 的通用参数,可以使用 java -X
命令查看,不同 JDK 版本可能会有不同。
非标准参数的含义:
-verbose:gc
功能类似,只是将每次 GC 事件的相关情况记录到一个文件中,文件的位置最好在本地,以避免网络的潜在问题。-Xms设置堆的初始容量和最小容量,它必须时 1024 的倍数且不能小于 1M,需要注意的是 -XX:InitalHeapSize
也可以指定堆初始容量,如果这两个都出现在命令行中,则以最后一个参数为准-Xmx指定堆的最大容量,它必须时 1024 的倍数且不能小于 2M,它等价于 -XX:MaxHeapSize
参数-Xss设置线程堆栈的容量,默认值依赖于操作系统,它类似于 -XX:ThreadStackSize
-Xmn新生代的初始容量和最大容量,此处的大小指的是 eden+2*surivor sapce,你也可以使用 -XX:NewSize
设置初始容量,使用 -XX:MaxNewSize
设置最大容量,如果都出现在命令行中则以最后一个参数为准
高级运行时参数
这些参数控制 HotSpot VM 的运行时行为。
-XX:HeapDumpPath=/var/log/java/java_heapdump.hprof
-XX:LogFile=path设置 HotSpot 的日志文件路径,默认生成在当前工作目录,名为 hotspot.log-XX:InitialHeapSize=size设置堆的初始容量-XX:MaxHeapSize=size设置堆的最大容量-XX:MaxNewSize=size设置新生代的最大容量-XX:+PrintGC打印 GC 事件,默认禁用-XX:+PrintGCDetails打印 GC 事件的详细信息,默认禁用-XX:SurvivorRatio=ratio设置 eden/survivor 的比值,默认值为 8-XX:+UseConcMarkSweepGC使用 GMS 垃圾收集器收集老年代-XX:+UseG1GC使用 G1 垃圾收集器-XX:+UseParallelGC使用 parallel scavenge 垃圾收集器-XX:+UseParallelOldGCfull gc 使用 parallel 垃圾收集器,默认禁用,当启用 -XX:+UseParallelGC
时自动启用-XX:+UseParNewGC在新生代中使用 parallel thread 垃圾收集器,默认禁用,当启用 -XX:+UseConcMarkSweepGC
时自动启用-XX:+UseSerialGC使用 serial 垃圾收集器
参考:
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BABDJJFI
https://juejin.cn/post/7033554940677062670
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"JVM 参数":http://eshow365.cn/6-18835-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: android app开发环境搭建
- 下一篇: Zabbix7.0 LTS新功能