java虚拟机参数-D、-X和-XX的区别小结

 更新时间:2023年06月21日 10:38:52   作者:上尤流苏  
本文主要介绍了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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • maven项目打包上传到私有仓库

    maven项目打包上传到私有仓库

    在项目开发中通常会引用其他的jar,怎样把自己的项目做为一个jar包的形式发布到私服仓库中,本文就详细的介绍一下,感兴趣的可以了解一下
    2021-06-06
  • 安装elasticsearch-analysis-ik中文分词器的步骤讲解

    安装elasticsearch-analysis-ik中文分词器的步骤讲解

    今天小编就为大家分享一篇关于安装elasticsearch-analysis-ik中文分词器的步骤讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Java 比较字符串实例详解

    Java 比较字符串实例详解

    这篇文章主要介绍了 Java 比较字符串实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 分布式锁实例教程之防止重复提交

    分布式锁实例教程之防止重复提交

    订单重复问题已经是老生常谈的问题了,下面这篇文章主要给大家介绍了关于分布式锁实例教程之防止重复提交的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式

    Java 设计模式以虹猫蓝兔的故事讲解简单工厂模式

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现
    2022-03-03
  • Java基础详解之面向对象的那些事儿

    Java基础详解之面向对象的那些事儿

    这篇文章主要介绍了Java基础之面向对象那些事儿,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-04-04
  • Java使用entrySet方法获取Map集合中的元素

    Java使用entrySet方法获取Map集合中的元素

    这篇文章主要为大家详细介绍了Java使用entrySet方法获取Map集合中的元素,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • springboot 接收LocalDateTime方式

    springboot 接收LocalDateTime方式

    这篇文章主要介绍了springboot 接收LocalDateTime方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 详解Java如何使用责任链默认优雅地进行参数校验

    详解Java如何使用责任链默认优雅地进行参数校验

    项目中参数校验十分重要,它可以保护我们应用程序的安全性和合法性。这篇文章主要介绍了如何使用责任链默认优雅地进行参数校验,需要的可以参考一下
    2023-03-03
  • SpringBoot静态资源及原理解析

    SpringBoot静态资源及原理解析

    这篇文章主要介绍了SpringBoot静态资源及原理解析,当创建一个jar工程时,想引入css等静态资源时,需要遵守SpringBoot的静态资源映射关系,通过WebMvcAutoConfiguration查看静态配置资源的规则,需要的朋友可以参考下
    2023-12-12

最新评论