增加Java中的堆大小

增加Java中的堆大小,java,heap-memory,Java,Heap Memory,我使用的是一台Windows2003服务器(64位),内存为8GB。如何增加堆内存的最大值?我正在使用-Xmx1500m标志将堆大小增加到1500 Mb。我是否可以将堆内存增加到物理内存的75%(6GB堆) 我可以将堆内存增加到75%吗 物理内存(6GB堆) 是的,你可以。事实上,如果你愿意,你可以增加到超过物理内存的数量 这是否是一个好主意取决于您的系统上还运行了多少其他功能。特别是,如果当前运行的应用程序和服务的“工作集”大大超过了可用的物理内存,您的系统很容易“颠簸”,需要花费大量时间在磁

我使用的是一台Windows2003服务器(64位),内存为8GB。如何增加堆内存的最大值?我正在使用
-Xmx1500m
标志将堆大小增加到1500 Mb。我是否可以将堆内存增加到物理内存的75%(6GB堆)

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

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


这是否是一个好主意取决于您的系统上还运行了多少其他功能。特别是,如果当前运行的应用程序和服务的“工作集”大大超过了可用的物理内存,您的系统很容易“颠簸”,需要花费大量时间在磁盘之间移动虚拟内存页。净效果是系统变得非常慢。

32
位系统上,可以增加到
2GB
。如果您使用的是64位系统,则可以更高。如果您选择错误,无需担心,如果您在32位系统上要求5g,java将抱怨无效值并退出

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

java -Xmx6g myprogram

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

java-Xmx6144M-d64


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

可以使用命令行选项增加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
-Xms设置初始Java堆大小
-Xmx设置最大Java堆大小
-Xss设置java线程堆栈大小
java-Xms16m-Xmx64m类名

在上面的一行中,我们可以将最小堆设置为16mb,最大堆设置为64mb,这可以直接增加eclipse中JVM分配的堆大小 在eclipseidegoto中

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


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

java-d64-Xms512m-Xmx4g HelloWorld

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

这只适用于64位版本的java。转到控制面板并单击Java图标。在Java控制面板的小窗口中,单击Java菜单栏,然后单击查看按钮


如果您有两个Java平台,请禁用Java的早期版本,然后单击Runtime parameters文本字段并写入
-Xmx1024m
或小于RAM大小。不要将堆大小增加到RAM,否则系统将崩溃。

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

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

是的。你可以。

$ java -Xms512m -Xmx6144m JavaApplication
您可以将堆内存增加到物理内存的75%(6GB堆)或更高

因为您使用的是64位,所以可以将堆大小增加到所需的大小。如果您使用的是32位,则限制为4GB。

$ java -Xms512m -Xmx6144m JavaApplication
将初始堆大小设置为512mb,最大堆大小设置为6GB


希望有帮助……)

一些人指出了使用jvm选项
-Xms
-Xms
的堆大小的具体答案。我想指出,这不是jvm的唯一内存选项。具体地说,如果要获得堆栈覆盖流,则需要通过添加附加选项(如
-Xss8m
)来增加堆栈的大小

对于这个问题,类似于
-Xms2g-Xmx6g-Xss8m
的jvm选项将是一个解决方案


我正在分享这些信息,因为我在谷歌搜索如何增加jvm内存时找到了这个解决方案,而这些解决方案在大量内存分配的情况下不起作用。一旦我弄清楚了具体设置的用途,我就可以通过谷歌搜索如何增加堆栈大小,并找到缺少的参数。:)希望这能节省别人的时间,就像它能节省我很多时间一样

您可以通过传递JVM参数-Xms-Xmx来增加堆大小,如下所示:

对于Jar文件:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar
对于Java文件:

 java -Xms4096M -Xmx6144M ClassName
上述参数将InitialHeapSize(-Xms)增加到4GB(4096MB),将MaxHeapSize(-Xmx)增加到6GB(6144MB)

但是,年轻一代堆大小将保持不变,并且额外的堆大小将添加到老一代堆大小。要使年轻一代堆和老一代堆的大小相等,请使用-XX:NewRatio=1-XX:-useAptiveSizePolicy参数

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-XX:NewRatio=Old Gen Heap Size:Young Gen HeapSize(您可以使用此比率来获得所需的比率)。

我在使用eclipse/STS的java代码中运行py文件时遇到问题,由于jvm堆内存不足,因此获取PyException。我已经做了下面提到的更改,我能够解决这个问题。下面是我的系统配置

这些是我在我的工作空间中所做的改变,瞧,它现在运行得非常完美


帮助我很大的是增加eclipse.ini文件中的堆空间,您可以在eclipse文件夹中找到该文件。我把它改成: -Xms2048m
-Xmx4096m

谢谢您的评论,但我如何才能增加。请您发出命令。请尝试-Xmx6000m。如果您使用的是64位版本的Java,它应该可以工作。您确定您运行的是64位版本的Java吗?在64位操作系统上?谢谢你,老板,但它在我的系统中不起作用,还有一些东西我没有定义“不起作用”。它不会启动并给您一个错误吗?它启动时使用不同的堆大小吗?根据我的经验,Java将接受使用32b虚拟机的实际堆大小(在32b或64b系统上,虚拟机是