在Mac上增加Java堆空间的最大可表示大小超过6GB

3

我正在使用一台Mac 10.6.8 64位机器(32 GB内存)上的模型检查器。我的问题是,我无法保留超过约2GB的堆空间。

例如,我尝试了以下操作:

./mymodelchecker -vmargs -d64 -Xms6g -Xmx6g

但是我收到了这个错误信息:
Invalid initial heap size: -Xms6g The specified size exceeds the maximum representable size.

据我所知,他的堆空间在32位环境下运行,但机器是64位的,Java通过-d64以64位模式运行,我的模型检查器支持64位架构。

我该如何增加堆空间的最大可表示大小?


5
java -version 报告的是什么?我打赌它会说你正在使用32位的JVM。 - Stephen C
3
-d32-d64 选项只在 Solaris 平台上有效。在其他平台上,你有一个 JVM,它要么是 32 位的,要么是 64 位的,而且不能进行选择。 - Peter Lawrey
$ java -version java版本 "1.6.0_33" Java(TM) SE运行时环境 (build 1.6.0_33-b03-424-10M3720) Java HotSpot(TM) 64位服务器虚拟机 (build 20.8-b03-424, 混合模式) - Reiner Zufahl
你能否粘贴运行JVM Shell的“mymodelchecker”? - lichengwu
2个回答

0
你还可以检查顶部的 -p #processId,看看所述的堆是否分配给该进程。查看在 top 报告中分配的虚拟内存:
ps -aef | grep <your process identifier>
top -p <the process id of the process as returned by the previous statement>

0
你需要修改 mymodelchecker 脚本,找到实例化 Java 程序的那一行,并添加 -Xms6g -Xmx6g 参数。
此外,也许模型检查器有一个配置/属性文件,你可以在不修改启动脚本的情况下设置 VM 参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接