2015-10-06 67 views
-4

下面的jvm参数有什么区别?以下jvm参数的含义是什么?

-Xms2048M:为JVM

-Xmx2048M其最小堆空间分配:为JVM

-XX:NewSize=512M其最大的堆空间分配:这是什么呢?

-XX:MaxNewSize=512M:这是干什么的?

+1

为什么不考虑文件建立--- https://docs.oracle.com/cd/E19900-01/819-4742/abeik/index.html –

+0

嗨Balwinder,因为我通过链接,我发现newsize和xms是一样的。然后在我们的项目中,他们已经设置了上述两个参数。所以我想知道我们应用程序的堆大小是多少? – ashu

+1

不是他们不是。它明确指出 - “-Xms和-Xmx参数定义了最小和最大堆大小”&“NewSize和MaxNewSize参数控制着新一代的最小和最大大小”。您还需要了解旧一代和新一代的尺寸。看看http://www.journaldev.com/2856/java-jvm-memory-model-and-garbage-collection-monitoring-tuning –

回答

1

如果你足够了解年轻一代和老一代的GC,那么你可以很容易地理解它。

要设置下限和上限为年轻一代的大小,我们需要使用-XX:新尺寸和XX:MaxNewSize。

考虑年轻一代是堆的一部分,所以最好的做法是将大小(XX:MaxNewSize)并不比老一代更。

出于性能方面的考虑,您可以设置初始大小XX:新尺寸,但你需要知道收集年轻物体的速度。

GC Tuning
Young Vs Old

+0

一个困惑,在我们的应用程序,我看到 - Xms2048M -Xmx2048M也 - XX:NewSize = 512M -XX:MaxNewSize = 512M,这是什么意思?根据链接,我理解堆大小为2GB,其中年轻的GEN为5GB。这是应用程序的正确初始化吗?因为年轻的gen是堆空间的一部分,因为我看到堆空间小于年轻的gen space ...请帮助我理解。 – ashu

+0

512M是gb的一半,是这个错字吗? – Gopidoss

相关问题