通过命令行增加Java中的MaxPermSize内存

你能解释一下如何增加这个PermSpace的大小。 我正在使用Gate应用程序并加载大量数据和大量插件,不幸的是每次运行后都会出现内存不足的错误maxPermSpace。

我到处搜索,但我找不到如何通过命令行增加这个大小,或者可能是我可以更新数据的文件?

我真的需要一些帮助才能完成我的项目。 请解释如何通过命令行执行此操作我使用的是jdk1.6.0_38版本和win7(64位)。

您必须使用-XX:MaxPermSize 。 示例命令可以是:

 java -Xms128m -Xmx512m -XX:MaxPermSize=512m ... 
 -XX:MaxPermSize=256m 

可能与对象的32位地址结合使用,而不是64位

 -XX:+UseCompressedOops 

允许使用压缩指针(对象引用表示为32位偏移而不是64位指针),以优化64位性能,Java堆大小小于32gb。

请参见VM选项 。

还要检查是否未发生字符串内化。 XML在过去引入了一个String.intern()来节省空间,但随后Perm空间增长。 所以也许检查你的XML设置。

来自Gate的文档

2.7.5我收到错误:无法为对象堆保留足够的空间[#]

GATE不使用JAVA_OPTS变量。 缺省内存分配在gate / build.xml文件中定义,但您可以通过在包含相同目录的同一目录中创建名为build.properties的文件来覆盖它们。
runtime.start.memory=256m
runtime.max.memory=1048m

检查您的gate / build.xml文件,并包含其他答案中引用的选项