我在构建期间使用Jenkins在Linux上运行数千(10K)的Junit,但它正在抛出OutOfMemoryError。
/builds/build.xml:113: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at
为configure上的该作业的JUnit设置了以下JVM配置 - > “调用蚂蚁” - >预先
Xms512m -Xmx1024m -XX:MaxPermSize=1024m
即使将PermGen和HeapSize增加到3072m之后,它仍然在同一个测试中失败。
我在错误的地方进行配置吗? Jenkins是否限制我增加调用ant配置超出一定限度? Jenkins配置是否还需要增加以影响JUnit ant配置?如果是,有人可以建议如何增加Jenkins堆和PermGen配置吗?
答案 0 :(得分:1)
如果出现PermGen space
错误,请使用Xms
& Xmx
参数不会影响错误。我建议您将这些选项添加到Jenkins启动脚本中,而不是在Build > Invoke Ant > Advanced... > Java Options
中设置选项。
-XX:PermSize=512m -XX:MaxPermSize=1024m
如果需要,请尝试增加MaxPermSize
值。