我开始在 java
命令上使用 -Xmx
选项,以允许我的进程使用更多的内存(256Mb,尽管我认为我目前使用少于 128Mb)。我还注意到用于启动内存的 -Xms
选项,默认值为 2Mb。我应该将此值设置为多少以及为什么?
最佳答案
-Xmx
参数定义 JVM 堆可以达到的最大内存大小。您必须充分了解您的程序并了解它在负载下的表现并相应地设置此参数。如果程序的堆内存达到最大堆大小,较低的值可能会导致 OutOfMemoryException
或性能非常差。如果您的程序运行在专用服务器上,则可以将此参数设置得更高,因为它不会影响其他程序。
-Xms
参数设置 JVM 的初始和最小堆内存大小。这意味着当您启动程序时,JVM 将立即分配此内存量。如果您的程序从一开始就消耗大量堆内存,那么这非常有用。这避免了 JVM 需要定期增加堆大小,因此您可以获得一些性能。如果您不知道此参数是否对您有帮助,请不要使用它。
对于像 Resin 这样的服务器端 Java 应用程序来说,将最小 -Xms
和最大 -Xmx
堆大小设置为相同的值是一种很好的做法。
您可以设置为 256 或 512Mb。
关于java - 开始为 JVM 分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2739539/