【发布时间】:2011-11-10 20:36:36
【问题描述】:
我可以通过分别传递参数-Xms 和-Xmx 来设置Java 堆大小的最小值和最大值。
我知道最大标志是限制空间所必需的,但是设置最小初始堆大小的原因是什么?如果最大值足够大,空间会增加吗?还是我错过了什么?
【问题讨论】:
我可以通过分别传递参数-Xms 和-Xmx 来设置Java 堆大小的最小值和最大值。
我知道最大标志是限制空间所必需的,但是设置最小初始堆大小的原因是什么?如果最大值足够大,空间会增加吗?还是我错过了什么?
【问题讨论】:
设置了最小大小,以便 JVM 在开始时不必“调整”堆空间的大小。
【讨论】:
Java 将从最小堆大小开始,并尝试通过垃圾收集来避免扩大堆。
因此,如果您的应用程序的稳态内存大小大于默认堆最小堆大小,您可能会在达到该大小的过程中执行大量无意义的 GC。将最小大小设置为该大小将避免无意义的 GC。
【讨论】:
如果您的应用程序需要一定数量才能运行,您可以设置最小堆大小。如果你设置了最大堆大小,jvm 不应该超过它。
【讨论】: