我们正在linux服务器上运行Junits。突然之间,我们开始遇到permGen空间问题。以下是我们用于设置空间的参数。最大烫发大小的默认值为174063616
ANT_OPTS=-Xmx4098m
export ANT_OPTS
JAVA_OPTS=-Xmx16392m
export JAVA_OPTS
在获得permgen空间问题后,如下所述更改了参数的值。但仍然没有运气。
ANT_OPTS=-Xmx4098m
export ANT_OPTS
JAVA_OPTS=-Xmx32784m
export JAVA_OPTS
如果您有与“ permGen”空间相关的内存分配错误,则意味着您使用Java 7或更低版本。因此,作为一个旁注,如果您运行Java 8或更高版本,就不会再看到此错误,因为该空间本身已不存在,并且仅限于可用的本机内存。
用于管理PermGen空间的JVM选项为XX:MaxPermSize
。因此,您应该使用以下命令行参数来运行单元测试,以将其添加到JVM:-XX:MaxPermSize=256m
。
ANT_OPTS
环境变量将配置Ant本身使用的JVM。如果单元测试未按派生方式运行,则应使用此环境变量。
如果在Ant派生的JVM中运行单元测试,则应告诉Ant使用一些附加的JVM参数启动Junit任务。您需要使用的参数是jvmarg
。
请参阅有关该任务的官方Ant文档:https://ant.apache.org/manual/Tasks/junit.html
因此,这是一段用于设置适当属性的XML:
<junit fork="yes">
<jvmarg value="-XX:MaxPermSize=256m" />
</junit>