我使用的是Windows 2003服务器(64位),内存为8gb。如何增加堆内存最大值?我使用-Xmx1500m标志将堆大小增加到1500 Mb。我可以将堆内存增加到物理内存的75% (6gb堆)吗?


当前回答

如果有人想知道如何在窗口中这样做,下面是步骤。

其他回答

可以在eclipse中直接增加JVM分配的堆大小 在eclipse IDE去

运行- >配置- >运行参数

输入-Xmx1g(用于设置最大大小,如Xmx256m或Xmx1g......m - > m g - > gb)

请使用以下命令将堆大小更改为6GB

export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"

如果有人想知道如何在窗口中这样做,下面是步骤。

我可以将堆内存增加到75%吗 物理内存(6GB堆)。

是的,你可以。事实上,如果您愿意,您可以将其增加到超过物理内存的数量。

这样做是否是个好主意,取决于您的系统上还有多少其他的程序在运行。特别是,如果当前运行的应用程序和服务的“工作集”大大超过了可用的物理内存,那么您的系统就容易出现“颠簸”,将虚拟内存页移到磁盘和移出磁盘花费大量时间。最终的结果是系统变得非常慢。

一些人用jvm选项-Xms和-Xms指出了堆大小的具体答案。我想指出,这不是jvm的唯一类型的内存选项。具体来说,如果您要获得堆栈流,那么您将希望通过添加诸如-Xss8m之类的额外选项来增加堆栈的大小。

对于这个问题,jvm选项如-Xms2g -Xmx6g -Xss8m是一种解决方案。

我分享这一信息是因为我的谷歌搜索如何增加jvm内存将我带到了这个解决方案,并且解决方案在大量内存分配时不起作用。一旦我弄清楚具体的设置是为了什么,我就能够谷歌如何增加堆栈大小,并找到丢失的参数。:)希望这能节省别人的时间,就像它会节省我很多时间一样。:)