【发布时间】:2011-03-03 02:19:09
【问题描述】:
我需要运行一个使用超过 2GB 的 Java 内存密集型应用程序,但我在增加堆最大大小时遇到了问题。到目前为止,我已经尝试了以下方法:
设置 -Xmx 参数,例如-Xmx3000 米。这种方法在创建 JVM 时失败。从我用谷歌搜索的内容来看,-Xmx 必须小于 2GB。
使用-XX:+AggressiveHeap option。当我尝试这种方法时,我收到一个“内存不足”错误,表明堆大小为 1273.4 MB,即使我的计算机有 8GB 内存。
是否有另一种方法可以尝试增加 JVM 的最大堆大小?以下是计算机规格的摘要:
- 操作系统:Windows 7(64 位)
- 处理器:Intel Core i7 (2.66 GHz)
- 内存:8 GB
- java -版本:
java version "1.6.0_18" Java(TM) SE Runtime Environment (build 1.6.0_18-b07) Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
【问题讨论】:
-
顺便说一句:最小和最大内存大小现在是标准选项。您可以使用 -ms 和 -mx 代替 -Xms 和 -Xmx。 -X??为非标准选项保留。
-
哪个 JVM 的标准?对于 HotSpot JVM(从 1.8 开始),它们仍然是非标准的。见docs.oracle.com/javase/8/docs/technotes/tools/unix/…
-
-mx 和 -ms 存在并且有效,但我在官方 java 文档中找不到它@PeterLawrey > 你可以添加文档链接吗?谢谢
-
@MichalBernhard 它向后兼容 Java 1.1。我看到它记录了该版本,但现在可能很难找到。 ;)
-
感谢@PeterLawrey 的解释。但是当您说它现在是标准时,您的意思是它是 Java 1.1 的标准(但在以后的版本中不是文档)?看起来很奇怪 :) 顺便说一句,我在 Java 1.1 文档上找到了链接,你是对的:ad.ntust.edu.tw/course/ad5601701/jmdl/docs/java/tooldocs/win32/…
标签: java jvm jvm-arguments