这样做的好处在于,当堆空间使用量达到需要重新调整大小时会有性能损失。如果一开始将它设置为64MB,但实际上在运行过程中应用程序需要250MB,当你接近64MB时,JVM将分配更多的堆空间,并且可能移动一些对象并进行其他簿记工作。这当然需要时间。
当应用程序正在运行时,您希望所有资源都专注于使其运行,因此这种额外的工作会使应用程序响应变慢,甚至在某些情况下,如果在堆被重新调整大小之前内存耗尽,应用程序可能会崩溃。
有时,在使用Java应用程序时,您会看到类似“将Xms
和Xmx
设置为相同值”的指令。这样做是为了避免完全调整大小,以便您的应用程序启动时,其堆已经达到最大值。