有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JVM的java启动内存分配

我开始使用java命令上的-Xmx选项来允许我的进程使用更多的内存(256Mb,尽管我认为我目前使用的内存不足128Mb)。我还注意到启动内存的-Xms选项,默认值为2Mb。我应该将该值设置为什么?为什么


Reference: Java


共 (1) 个答案

  1. # 1 楼答案

    参数-Xmx定义了JVM堆可以达到的最大内存大小。您必须非常了解您的程序,了解它在负载下的性能,并相应地设置此参数。如果程序的堆内存达到最大堆大小,则较低的值可能会导致OutOfMemoryException或非常差的性能。如果您的程序在专用服务器上运行,您可以将此参数设置得更高,因为它不会影响其他程序

    -Xms参数设置JVM的初始和最小堆内存大小。这意味着,当您启动程序时,JVM将立即分配这一数量的内存。如果您的程序从一开始就要消耗大量堆内存,这将非常有用。这避免了JVM需要定期增加堆大小,因此可以在那里获得一些性能。如果你不知道这个参数是否对你有帮助,不要使用它

    对于像Resin这样的服务器端Java应用程序,将最小-Xms和最大-Xmx堆大小设置为相同的值是一种很好的做法。 您可以设置为256或512Mb