增加Java中的堆大小

我正在使用8 GB RAM的Windows 2003服务器(64位)。 我怎样才能增加堆内存的最大值? 我正在使用-Xmx1500m标志将堆大小增加到1500 Mb。 我可以将堆内存增加到物理内存的75%(6 GB堆)吗?

您可以在32位系统上增加到4GB。 如果您使用的是64位系统,则可以更高。 没有必要担心,如果你select不正确,如果你要求在32位系统上的5g Java会抱怨无效的值,并退出。

正如其他人所发布的,使用cmd行标志 – 例如

 java -Xmx6g myprogram 

通过inputjava -X,你可以得到一个完整的列表(或者几乎完整的列表)。

通过使用命令行选项可以增加JVM分配的堆大小在这里,我们有3个选项

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

在上面的行中,我们可以设置最小堆为16mb,最大堆为64mb

在32位JVM上,理论上可以设置的最大堆大小是4GB。 要使用更大的堆大小,您需要使用64位JVM。 尝试以下操作:

java -Xmx6144M -d64

-d64标志很重要,因为这告诉JVM以64位模式运行。

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

运行—->运行configuration—->参数

input-Xmx1g(用于设置最大尺寸,如Xmx256m或Xmx1g …… m – > mb g —> gb)

java -d64 -Xms512m -Xmx4g HelloWorld

其中,-d64:将启用64位JVM -Xms512m:将初始堆大小设置为512 MB -Xmx4g:将最大堆大小设置为4 GB(这里的java文件名是:HelloWorld.java)

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

是的你可以。 其实你可以增加到超过物理内存的数量,如果你想的话。

这是否是一个好主意取决于你的系统上还有多less运行。 特别是,如果当前正在运行的应用程序和服务的“工作集”显着超过可用的物理内存,则系统可能会发生“颠簸”,花费大量时间将虚拟内存页面移入和移出磁盘。 最终结果是系统变得非常慢。

这只适用于64位版本的Java。 去控制面板点击java图标。 打开java控制面板的小窗口。 点击java菜单栏,然后​​点击查看button。

如果你有两个java平台,禁用以前版本的java,然后点击运行时参数文本字段。 在这里写下-Xmx1024m或小于RAM SIZE。 不要增加等于RAM的堆大小。否则你的系统将会崩溃。

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

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

有几个人用-Xms-Xms的jvm选项指出堆大小的具体答案。 我想指出的是,这不是jvm的唯一内存选项。 特别是如果你通过stream的堆栈,那么你需要增加一个像-Xss8m这样的选项来增加堆栈的大小。

对于这个问题,像-Xms2g -Xmx6g -Xss8m这样的jvm选项将是一个解决scheme。

我分享这个信息,因为我的谷歌search如何增加jvm内存带我到这个解决scheme,并解决scheme没有工作与大量的内存分配。 一旦我找出具体的设置是什么,我可以谷歌如何增加堆栈大小,并find缺less的参数。 :)希望这节省了其他时间,因为它会节省我一吨的时间。 🙂

是。 您可以。

您可以将堆内存增加到物理内存(6 GB堆)的75%或更高。

既然你使用64位,你可以增加你的堆大小到你想要的数量。 如果您使用的是32位,则限制为4GB。

 $ java -Xms512m -Xmx6144m JavaApplication 

将您的初始堆大小设置为512mb,最大堆大小为6GB。

希望它帮助.. 🙂