通常我设置-Xms512m,-Xmx1g以便在JVM启动时分配512MB并根据需要逐渐增加堆到1GB.但我看到这些值1g在专用服务器实例中设置为相同.两者都设置为相同的值有什么好处吗?
Fai*_*roz 11
那么有几件事情.
这里回答非常好 - https://developer.jboss.org/thread/149559?_sscc=t
有一些优点。
总的来说,我会将Xms设置为我有信心使用的值,并将其加倍以留出将来用例或未经测试的情况的余地。即我们不期望的大小,但可能会使用。
简而言之,最大程度是您希望程序失败而不是再使用一次。
小智 5
从Oracle Java SE 8文档:
https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/sizing.html 默认情况下,虚拟机在每个集合上增加或缩小堆,以尝试保持可用空间的比例在特定范围内的每个集合中保存对象。此目标范围由参数
-XX:MinHeapFreeRatio=<minimum>和 设置为百分比-XX:MaxHeapFreeRatio=<maximum>,总大小由-限制在-之下,由限制在Xms<min>上方-Xmx<max>。通过从虚拟机中删除最重要的大小决策,将-Xms和设置-Xmx为相同的值可以提高可预测性。但是,如果选择不当,虚拟机将无法补偿。
如果-Xms和-Xmx的值相同,则JVM不必调整堆大小,这意味着JVM可以减少工作量,并可以增加应用程序的时间。但是,如果选择的值对于-Xms来说是一个糟糕的选择,那么将永远不会使用分配的某些内存,因为堆将永远不会缩小;如果对于-Xmx而言,如果选择的值很差,您将得到OutOfMemoryError。
| 归档时间: |
|
| 查看次数: |
21976 次 |
| 最近记录: |