JUnit测试用例中的Out of Memory错误

时间:2016-10-03 06:45:40

标签: java grails groovy junit grails-2.0

我的Grails应用程序中有800多个单元测试用例。我正在使用下面提到的Grails App配置

app.grails.version=2.4.4

以下是Junit测试用例的Run Configuration的几行

-Djava.library.path=./lib
-Dserver.ip=localhost
-Dserver.port=9090
-XX:MaxPermSize=512m
-Xverify:none

我在Ubuntu机器上运行此应用程序。有时,在运行测试用例时,它会给我一个Out Of Memory错误,如下所示:

  

java.lang.OutOfMemoryError:Java堆空间   java.lang.Class.privateGetDeclaredMethods(Class.java:2442)   java.lang.Class.getDeclaredMethods(Class.java:1808)

     

org.codehaus.groovy.util.LazyReference.getLocked(LazyReference.java:46)   org.codehaus.groovy.util.LazyReference.get(LazyReference.java:37)   org.grails.datastore.mapping.simple.engine.SimpleMapEntityPersister $ 1.query(SimpleMapEntityPersister.groovy:126)`

     

java.lang.OutOfMemoryError:Java堆空间   org.grails.datastore.mapping.simple.engine.SimpleMapEntityPersister.getPropertyIndexer(SimpleMapEntityPersister.groovy:90)        org.grails.datastore.mapping.simple.query.SimpleMapQuery $ _closure35.doCall(SimpleMapQuery.groovy:431)        org.grails.datastore.mapping.simple.query.SimpleMapQuery.executeSubQueryInternal(SimpleMapQuery.groovy:700)       org.grails.datastore.mapping.simple.query.SimpleMapQuery.executeSubQuery(SimpleMapQuery.groovy:676)       org.grails.datastore.mapping.simple.query.SimpleMapQuery.executeQuery(SimpleMapQuery.groovy:63)   org.grails.datastore.mapping.query.Query.list(Query.java:542)   grails.gorm.CriteriaBuilder.invokeMethod(CriteriaBuilder.java:329)

我参加了一个Sampler和Profiler内存管理测试,但他们无能为力。同样在每个测试用例Groovy类中,我使用@Before@After注释来减少永久生成。

有什么我想念的吗?我想减少PermGen并永久摆脱Out Of Memory错误。

0 个答案:

没有答案