首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么需要-Xms?

为什么需要-Xms?
EN

Stack Overflow用户
提问于 2013-11-12 08:45:47
回答 2查看 1.8K关注 0票数 6

据我所知,-Xms-Xmx用于指定java程序的最小和最大heap size。根据我的理解,如果我们不指定任何选项,即堆大小可以由JVM自己管理,JVM就可以工作。

所以,如果我们想限制最大堆大小,我们应该使用-Xmx --这是可以的,现在我的问题是,为什么有人需要限制堆的最小大小,因为它可以由JVM很好地管理。

为什么需要-Xms呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-12 08:51:32

可以通过设置更大的最小堆大小来减少垃圾收集周期。这对长时间运行的程序并没有太大的影响,但是短时间运行的程序可以从中受益。

JVM将初始堆大小设置为最大堆大小的一定数量,然后增长堆,并在所使用的内存超过某个阈值时执行(大部分是次要的) GC运行。因此,当使用-Xms设置初始堆大小(然后在JVM启动时立即分配)时,可以避免这些堆增长周期。

票数 12
EN

Stack Overflow用户

发布于 2013-11-12 08:50:08

JVM内存根据需要在-Xms和-Xmx参数的范围内增长。-Xms和-Xmx之间的区别是,除了最小和最大堆大小范围之外,如果可用的话,-Xms的内存量将由操作系统立即分配给您的应用程序,但是-Xmx将被视为已接受的请求,并将在需要时根据该限制得到服务。

在正常情况下,每个应用程序都需要一些最小的内存来启动和工作。如果应用程序开发人员能够评估这一点,那么指定-Xms是有意义的。预先拥有足够的所需内存可以减少将堆从一个值增长到另一个值的开销。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19924583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档