你能解释一下如何增加这个 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 位指针的对象引用)以优化 Java 堆大小小于 32gb 的 64 位性能。
请参阅虚拟机选项。
还要检查没有发生字符串内部化。过去引入 XML 是String.intern()
为了节省空间,但后来 Perm 空间变大了。所以也许检查你的 XML 设置。
来自 Gate 的文档
2.7.5 报错:Could not reserved enough space for object heap [#]
GATE 不使用 JAVA_OPTS 变量。默认内存分配在 gate/build.xml 文件中定义,但您可以通过在同一目录中创建一个名为 build.properties 的文件来覆盖它们,其中包含
runtime.start.memory=256m
runtime.max.memory=1048m
检查您的 gate/build.xml 文件并包括其他答案中引用的选项