什么是Java / JVM中的

您所在的位置:网站首页 java中的参数是什么意思 什么是Java / JVM中的

什么是Java / JVM中的

2024-03-22 00:48| 来源: 网络整理| 查看: 265

什么是Java / JVM中的-Xms和-Xms参数(已更新至Java 13)

简而言之,

Xmx指定应用程序可用的最大堆大小Xms指定应用程序可用的最小堆大小

这些是Java虚拟机(JVM)参数,用于指定Java应用程序的内存边界。在对性能问题或OutOfMemoryError进行故障排除时,通常使用它们。它们控制 Java应用程序可用的内存量。该Xmx参数指定最大存储器的应用程序都可以使用,其中作为Xms指定的最小或初始内存池。如果您的应用程序超出了最大内存(使用分配Xmx),并且垃圾回收器无法释放内存,则JVM将崩溃,并显示OutOfMemoryError。如果您有兴趣,我写了一篇文章,并举例说明垃圾收集的工作方式及其产生的年代。

$ java -Xmx256m Xmx1024m -jar yourapp.jar

在上面的示例中,应用程序yourapp.jar将获得256 MB的初始内存池,最大内存池最大为1024 MB。在中256m,m代表兆字节。您可以使用g或G表示千兆字节。

Xmx1g或Xmx1G:将最大内存大小设置为1 GB。Xmx1024m或Xmx1024M:将最大内存大小设置为1024兆字节。Xmx1024000k或Xmx1024000K:将最大内存大小设置为1024000千字节。

请务必注意,Xmx和Xms都是可选的。如果未提供这些,则Java虚拟机(JVM)将为其使用默认值。默认值取决于您的计算机和JVM配置。对于服务器类机器,这些定义为:

初始堆大小为物理内存的1/64(用于Xms)最大堆大小为物理内存的1/4(用于Xmx)

在下面的示例中,最大内存将被限制为1024 MB。初始内存(Xms参数代表的将使用默认值。)

java -Xmx1024m -jar yourapp.jar

这是一个不错的YouTube视频,介绍了解决与内存相关的错误的过程,并通过示例演示了如何解决这些错误。

Java 13和Z垃圾收集器

Java 13引入了一个称为ZGC的新垃圾收集器。其功能之一包括优化,以将未使用的内存返回到操作系统。默认情况下启用此功能,它不会返回内存,以使堆大小减小到小于Xms。因此,如果您将其设置Xms为相等Xmx(就像许多开发人员一样),它将实质上禁用该功能。

如果要查看所有可用的JVM参数,则可以使用java -X开关,例如

$ java -X -Xmixed混合模式执行(默认) 仅-xint解释模式执行 -Xbootclasspath:分隔 设置引导类和资源的搜索路径 -Xbootclasspath / a:分隔的目录和zip / jar文件 追加到引导类路径的末尾 -Xbootclasspath / p:分隔的目录和zip / jar文件 放在引导类路径的前面 -Xdiag显示其他诊断消息 -Xnoclassgc禁用类垃圾回收 -Xincgc启用增量垃圾收集 -Xloggc: 将GC状态记录到带有时间戳的文件中 -Xbatch禁用后台编译 -Xms 设置初始Java堆大小 -Xmx 设置最大Java堆大小 -Xss 设置Java线程堆栈大小 -Xprof输出cpu分析数据 -Xfuture启用最严格的检查,预期将来会发生默认情况 -Xrs减少Java / VM对OS信号的使用(请参阅文档) -Xcheck:jni对JNI功能执行附加检查 -Xshare:off不要尝试使用共享的类数据 -Xshare:如果可能,自动使用共享的类数据(默认) -Xshare:按要求使用共享类数据,否则将失败。 -XshowSettings显示所有设置并继续 -XshowSettings:全部 显示所有设置并继续 -XshowSettings:vm显示所有与vm相关的设置并继续 -XshowSettings:属性 显示所有属性设置并继续 -XshowSettings:语言环境 显示所有与语言环境相关的设置并继续 -X选项是非标准的,如有更改,恕不另行通知。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3