#java #grails #groovy #junit #grails-2.0
#java #grails #groovy #junit #grails-2.0
Вопрос:
У меня более 800 модульных тестовых примеров в моем приложении Grails. Я использую приведенную ниже конфигурацию для своего приложения Grails
app.grails.version=2.4.4
Ниже приведены несколько строк из конфигурации запуска тестовых примеров Junit
-Djava.library.path=./lib
-Dserver.ip=localhost
-Dserver.port=9090
-XX:MaxPermSize=512m
-Xverify:none
Я запускаю это приложение на компьютере с Ubuntu. Иногда при выполнении тестовых примеров возникает ошибка нехватки памяти, как показано ниже, и многое другое:
java.lang.Ошибка OutOfMemoryError: Java heap space 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.запрос (SimpleMapEntityPersister.groovy:126) `
java.lang.Ошибка OutOfMemoryError: Java heap space org.grails.datastore.mapping.simple.engine.SimpleMapEntityPersister.getPropertyIndexer(SimpleMapEntityPersister.groovy:90) org.grails.datastore.mapping.simple.запрос.SimpleMapQuery$_closure35.doCall(SimpleMapQuery.groovy:431) org.grails.datastore.mapping.simple.запрос.SimpleMapQuery.executeSubQueryInternal(SimpleMapQuery.groovy:700) org.grails.datastore.mapping.simple.запрос.SimpleMapQuery.executeSubQuery(SimpleMapQuery.groovy:676) org.grails.datastore.mapping.simple.запрос.SimpleMapQuery.ExecuteQuery(SimpleMapQuery.groovy:63) org.grails.datastore.mapping.запрос.Query.list(Query.java:542) grails.gorm.CriteriaBuilder.invokeMethod(CriteriaBuilder.java:329)
Я прошел тест управления памятью сэмплера и профилировщика, но они не смогли сильно помочь. Также в каждом тестовом классе Groovy я использую @Before
@After
аннотацию и для уменьшения постоянной генерации.
Есть ли что-то, чего мне не хватает? Я хочу уменьшить PermGen и навсегда избавиться от ошибки нехватки памяти.
Комментарии:
1. Grails 2.4.4 использует groovy 2.3.7 внутри, поэтому здесь нет шансов на утечку памяти!!
2. какая версия Java?
3. версия java:- 7
4. Подсказка: никогда не добавляйте больше информации в комментарии; вместо этого всегда обновляйте свой вопрос. И я не получаю ваш первый комментарий. При использовании библиотек других пользователей всегда существует (возможно, очень небольшая) вероятность того, что этот продукт приведет к утечке памяти.