我正在尝试更改 Mac OS X 上 Java 的最大内存大小“heap”。我已经阅读了很多关于修改“-XX:MaxPermSize”的文章,但我找不到该文件并不知道如何更改该设置。
您可以使用以下参数设置Java虚拟机可用的内存:
-Xms64m -Xmx200m
-Xms指定最小内存,-Xmx指定最大内存。
你需要在运行应用程序时指定它们。例如,如果你有一个名为app.jar的jar包,可以键入以下命令来运行它
java -Xms64m -Xmx512m -jar app.jar
我认为在32位机器上,你不能给JVM超过1GB的内存。
我正在使用WEKA,遇到了同样的问题。 在这里,我找到了解决方案,而且很容易。
进入应用程序==> 左键单击特定应用程序(例如Weka)==> 显示包内容==> 内容==> Info.Plist==> Java==> VMOptions==> 根据需要增加内存大小(在我的Mac上,默认为1 GB,我增加到了6 GB)
我曾在终端中尝试运行一个具有极大数组的Java程序。但是它一直提示内存不足,后来我通过增加每个线程允许使用的内存大小解决了这个问题:
$ java -Xss12G name
-Xss12G
告诉Java运行时为每个线程分配12GB内存,然后运行name
。同样,-Xss4G
使用每个线程4GB内存。符号$
是Terminal
控制台提示,可能会显示文件夹和你的名字。java -X
可以获取有关分配堆和线程内存的更多详细信息。$ java -X
通过使用-Xmx
开关设置最大堆大小。
-XX:MaxPermSize
用于指定永久代的最大大小,它是总堆的子集。
java -XX:MaxPermSize=128m ...
这与任何其他平台上的情况相同。
如果您需要为应用程序包设置此项(即,看起来像常规双击 Mac 应用程序的 Java 应用程序),则需要编辑 info.plist 文件,该文件位于包内并且通常不可见。
此页面 提供了有关如何在 IntelliJ 中执行此操作的说明,但也适用于其他捆绑的 Mac Java 应用程序。
scala
而不是java -cp /.../scala-library.jar:...
)。 - Rex Kerr/bin/java
移动到/bin/realjava
,然后创建一个shell脚本/bin/java
,该脚本使用某些默认设置调用真实的脚本。但是,我不建议这样做。你最好根据每个JVM的确切要求进行调整。 - opyate