当前位置:  开发笔记 > 编程语言 > 正文

增加Java中的堆大小

如何解决《增加Java中的堆大小》经验,为你挑选了6个好方法。

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



1> Steve B...:

您可以在32位系统上增加到4GB.如果您使用的是64位系统,则可以更高.如果你选错了,不用担心,如果你在32位系统上要求5g,java会抱怨无效值并退出.

正如其他人发布的那样,使用cmd-line标志 - 例如

java -Xmx6g myprogram

您可以通过键入java -X来获取完整列表(或者几乎完整的列表).


根据我的经验,Java将使用32b VM接受的实际堆大小(在32b或64b系统上 - VM是这里的重要部分)大约是2G.此外,惊讶的提问者没有首先搜索并找到:http://stackoverflow.com/questions/1596009/java-lang-outofmemoryerror-java-heap-space和:http://stackoverflow.com/questions/37335/how-对并购交易与Java的琅的OutOfMemoryError-Java的堆空间错误64MB堆-S
啊,你当然是对的 - 在32位系统上,你只能处理2 Gb的内存.

2> 小智..:

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

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

java -Xms16m -Xmx64m ClassName

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



3> Kevin..:

在32位JVM上,理论上可以设置的最大堆大小为4gb.要使用更大的堆大小,您需要使用64位JVM.请尝试以下方法:

java -Xmx6144M -d64

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


定义"不工作".它不会启动并给你一个错误吗?它是否开始但使用不同的堆大小?

4> 小智..:

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

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

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


只是添加这个应该是一个VM参数(eclipse为您提供了两个选项).

5> 小智..:

java -d64 -Xms512m -Xmx4g HelloWorld

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



6> Stephen C..:

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

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

这样做是否是个好主意取决于系统上运行了多少其他功能.特别是,如果当前运行的应用程序和服务的"工作集"明显超过可用的物理内存,则系统可能会"捶打",花费大量时间将虚拟内存页面移入和移出磁盘.净效应是系统变得非常慢.


您确定您运行的是64位版本的Java吗?在64位操作系统上?
推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有