我正在使用8 GB RAM的Windows 2003服务器(64位).如何增加堆内存最大值?我正在使用该-Xmx1500m
标志将堆大小增加到1500 Mb.我可以将堆内存增加到物理内存的75%(6 GB堆)吗?
您可以在32位系统上增加到4GB.如果您使用的是64位系统,则可以更高.如果你选错了,不用担心,如果你在32位系统上要求5g,java会抱怨无效值并退出.
正如其他人发布的那样,使用cmd-line标志 - 例如
java -Xmx6g myprogram
您可以通过键入java -X来获取完整列表(或者几乎完整的列表).
通过使用命令行选项可以增加JVM分配的堆大小.这里我们有3个选项
-Xmsset initial Java heap size -Xmx set maximum Java heap size -Xss set java thread stack size java -Xms16m -Xmx64m ClassName
在上面的行中,我们可以将最小堆设置为16mb,最大堆为64mb
在32位JVM上,理论上可以设置的最大堆大小为4gb.要使用更大的堆大小,您需要使用64位JVM.请尝试以下方法:
java -Xmx6144M -d64
-d64标志很重要,因为它告诉JVM以64位模式运行.
可以在eclipse IDE中直接增加由JVM分配的堆大小
运行---->运行配置---->参数
输入-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堆).
是的你可以.事实上,如果你愿意,你可以增加到超过物理内存的数量.
这样做是否是个好主意取决于系统上运行了多少其他功能.特别是,如果当前运行的应用程序和服务的"工作集"明显超过可用的物理内存,则系统可能会"捶打",花费大量时间将虚拟内存页面移入和移出磁盘.净效应是系统变得非常慢.