-Xms:初始堆大小或最小堆大小?

Posted

技术标签:

【中文标题】-Xms:初始堆大小或最小堆大小?【英文标题】:-Xms: Initial heap size or minimum heap size? 【发布时间】:2010-12-29 09:51:18 【问题描述】:

-Xms是指定初始堆大小还是最小堆大小? 我看到不同的观点。像second answer here 这样的一些人说它是用于初始堆,而另一些人则说它是最小堆大小。

还是说最小尺寸本身就是初始尺寸?

【问题讨论】:

【参考方案1】:

初始堆大小是最小堆大小。它不会小于初始堆大小。

来自Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine:

默认情况下,虚拟机增长 或在每次收集时缩小堆 尽量保持免费的比例 每个地方都有住物体的空间 特定范围内的集合。 此目标范围设置为 参数百分比 -XX:MinHeapFreeRatio= 和 -XX:MaxHeapFreeRatio=,总大小由下限 -Xms 及以上 -Xmx 。

【讨论】:

默认情况下,我的机器占用 10 GB 的最大堆大小,因为我们有 40 GB 内存。当我设置 -Xms15g 时,最大尺寸是多少?【参考方案2】:

从运行 java -X:

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

请注意,不能保证 -X 选项在所有 VM 上都存在或在所有 VM 上的行为相同。例如 -Xms 可以根据 VM 格式化您的硬盘驱动器(它不会 - 但严格来说它可以 :-) (键入 java 本身会提供此行的帮助:“-X print help on non-standard options”) .

【讨论】:

以上是关于-Xms:初始堆大小或最小堆大小?的主要内容,如果未能解决你的问题,请参考以下文章

JVM参数详解

对于JVM内存配置参数

Java 堆

Java JVM 参数设置大全

Java JVM 参数设置大全

JVM堆详解