正如许多来源中所描述的那样,我正在尝试从命令行使用 java -Xms512m
以便将 Java 机器的最大堆大小设置为 512 Mb。
但是出了点问题,命令行显示如下
而且,正如我直接从程序中检查的那样:
long heapMaxSize = Runtime.getRuntime().maxMemory();
heapMaxSize 等于 954728448,大约 1Gb。
最佳答案
这称为 VM 参数,必须在启动 VM(JVM)时指定。
您可以在运行程序时指定最大堆大小:
java -Xmx1024m -jar yourJar.jar
或者,您可以在系统 JAVA_OPTS
上设置一个环境变量,JVM 将在启动时遵循您的设置:
JAVA_OPTS="-Xmx1024m"
关于你的第二个问题,建议你引用What are Runtime.getRuntime().totalMemory() and freeMemory()?因为它阐明了 Runtime.getRuntime().maxMemory()
和 friend 返回的值。
关于java - 更改最大 Java 堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886368/