在 Linux 系统上增加堆大小

3

我使用Linux机器,并且希望为Java设置最小堆大小并增加最大堆大小。RAM为4GB,当前最大堆大小为1GB。请您指导我可以将最大堆增加到多少以及上述配置需要设置的最小堆大小。


使用命令行时,-Xmx用于设置最大堆大小,-Xms用于设置最小堆大小。 - ravthiru
你可以将4GB中的最大值设置为3GB,但在许多情况下不需要设置最小值。4GB相当小,如果可能的话,我建议你考虑增加它。 - Peter Lawrey
感谢Ricardo、Ravthiru和Peter的快速回复。我想知道在32位或64位上设置堆大小的值是否会产生任何影响。我的操作系统是64位的。 - Indrakaran
2个回答

3

Java堆大小是存储Java应用程序创建的对象的地方,这也是垃圾回收发生的地方,是Java应用程序使用的内存。对于一个占用大量内存的Java进程来说,堆大小不足会导致常见的java.lang.OutOfMemoryError: Java heap space错误。

-Xms<size> - Set initial Java heap size
-Xmx<size> - Set maximum Java heap size

$ java -Xms512m -Xmx1024m JavaApp

建议的Java内存 以下是适用于小到中型Java应用程序的建议值

Heap = -Xms512m -Xmx1024m

来源:https://www.mkyong.com/java/find-out-your-java-heap-memory-size/

在Java应用程序中,堆内存是用于存储对象的区域。您可以使用以下代码来查找Java堆内存的大小:

long heapSize = Runtime.getRuntime().totalMemory();
System.out.println("Heap Size = " + heapSize);

这将打印出当前Java虚拟机(JVM)的总堆内存大小。


谢谢Rudziankou。实际上,需求是要增加最大堆大小。那么根据您的意见,我们可以将最大堆大小增加到多少? - Indrakaran
我认为明智的决策是允许最大堆大小达到您操作RAM大小的1/2。如果您面临内存不足的情况,我建议增加RAM或重新考虑GC策略。 - Rudziankoŭ

2

这应该会有所帮助

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size

java -Xms4g -Xmx4g ClassName

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接