java虚拟机参数-D、-X和-XX的区别小结
最近在学习jvm调优相关的内容, 一直有一个疑问,为什么有些参数是以-X开头的,有些是以-XX开头的,还有-D开头的?
通过查询资料、总结如下
-XX
说明:
标准选择(Standard Options)
这些是 JVM 的所有实现都支持的最常用的选项。
These are the most commonly used options that are supported by all implementations of the JVM.
示例:
例如以-XX开头的配置参数
-XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnable -XX:+UseFastAccessorMethods
-X
说明:
非标准选择(Non-Standard Options)
这些选项是特定于 Java HotSpot 虚拟机的通用选项。
These options are general purpose options that are specific to the Java HotSpot Virtual Machine.
示例:
例如以-X开头的配置参数
-Xmx256m -Xms256m -Xmn768m -Xss256k
-D
说明:
设置系统属性值;
-D属性名称=属性值
Sets a system property value. The property variable is a string with no spaces that represents the name of the property. The value variable is a string that represents the value of the property. If value is a string with spaces, then enclose it in quotation marks (for example -Dfoo=“foo bar”).
示例:
例如以-D开头的配置参数
-Dspring.profiles.active=release -Dspring.config.location=/opt/app/conf/
如果 属性值 是一个带有空格的字符串,那么用引号将其括起来
例如 -Dfoo = “ foo bar”
如果想进一步了解参数的详细信息,可以查阅Oracle官网
Oracle官网关于参数的说明
常用JVM参数
1.-Xms:初始堆大小。只要启动,就占用的堆大小。
2.-Xmx:最大堆大小。java.lang.OutOfMemoryError:Java heap这个错误可以通过配置-Xms和-Xmx参数来设置。
3.-Xss:栈大小分配。栈是每个线程私有的区域,通常只有几百K大小,决定了函数调用的深度,而局部变量、参数都分配到栈上。
当出现大量局部变量,递归时,会发生栈空间OOM(java.lang.StackOverflowError)之类的错误。
4.XX:NewSize:设置新生代大小的绝对值。
5.-XX:NewRatio:设置年轻代和年老代的比值。比如设置为3,则新生代:老年代=1:3,新生代占总heap的1/4。
6.-XX:MaxPermSize:设置持久代大小。
java.lang.OutOfMemoryError:PermGenspace这个OOM错误需要合理调大PermSize和MaxPermSize大小。
7.-XX:SurvivorRatio:年轻代中Eden区与两个Survivor区的比值。注意,Survivor区有form和to两个。比如设置为8时,那么eden:form:to=8:1:1。
8.-XX:HeapDumpOnOutOfMemoryError:发生OOM时转储堆到文件,这是一个非常好的诊断方法。
9.-XX:HeapDumpPath:导出堆的转储文件路径。
10.-XX:OnOutOfMemoryError:OOM时,执行一个脚本,比如发送邮件报警,重启程序。后面跟着一个脚本的路径。
到此这篇关于java虚拟机参数-D、-X和-XX的区别小结的文章就介绍到这了,更多相关java -D -X和-XX内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
从前端Vue到后端Spring Boot接收JSON数据的正确姿势(常见错误及问题)
这篇文章主要介绍了从前端Vue到后端Spring Boot接收JSON数据的正确姿势(常见错误及问题),本文将从前端Vue到后端Spring Boot,详细介绍接收JSON数据的正确姿势,帮助开发人员更好地处理JSON数据,感兴趣的朋友一起看看吧2024-02-02java 利用HttpClient PostMethod提交json数据操作
这篇文章主要介绍了java 利用HttpClient PostMethod提交json数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-01-01Mybatis Mapper接口和xml绑定的多种方式、内部实现原理和过程解析
在Mybatis中,我们需要创建一个与实体类对应的Mapper接口,然后在该接口上添加方法,这些方法对应着SQL语句,这篇文章主要介绍了Mybatis Mapper接口和xml绑定的多种方式、内部实现原理和过程,需要的朋友可以参考下2023-11-11Spring Cloud Alibaba Nacos两种检查机制
这篇文章主要介绍了Spring Cloud Alibaba Nacos两种检查机制,作为注册中心不止提供了服务注册和服务发现功能,它还提供了服务可用性监测的机制,下面我们就一起进入文章了解具体详情吧2022-05-05浅析SpringBoot微服务中异步调用数据提交数据库的问题
这篇文章主要介绍了SpringBoot微服务中异步调用数据提交数据库的问题,今天本文涉及到的知识点不难,都是很简单的crud操作,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下2022-07-07
最新评论