在这篇文章中,我们将一起看一下,一些常见的Java虚拟机的参数配置。
堆内存 - Xms 和 Xmx配置
堆内存配置,可以说是应用程序中,最常见的提升性能的参数配置。
这就是为什么我们需要指定最大和最小堆内存配置:
-Xms<heap size>[unit]
-Xmx<heap size>[unit]
在这里,unit 表示要初始化内存(用堆大小表示)的单元。 单位可以标记为“ g”代表 GB,“ m”代表 MB,“ k”代表 KB。
例如,如果我们想给 JVM 分配最小的2gb 和最大的5gb,我们需要写:
-Xms2G -Xmx5G
从 java8开始,Metaspace 的大小没有定义。 一旦它达到全局限制,JVM 会自动增加它,然而,为了克服任何不必要的不稳定性,我们可以设置 Metaspace 大小为:
-XX:MaxMetaspaceSize=<metaspace size>[unit]
在这里,metaspace size表示我们要分配给元空间的内存量。
根据 Oracle 的参考指南,除了总的可用内存之外,第二大影响因素是为年轻代保留的堆的比例。 默认情况下,YG(年轻代) 的最小大小为1310 MB,最大大小不受限制。
我们也可以显示的设置年轻代的大小:
-XX:NewSize=<young size>[unit]
-XX:MaxNewSize=<young size>[unit]