Я вижу "java.lang.OutOfMemoryError: пространство PermGen" при запуске ~ 300 тестов JUnit и использование контекста w760. С трудом выясняя, что есть PermGen, поскольку:
- в установившемся режиме приложение потребляет около 90 м пространства перм.
- Я пробовал -XX: MaxPermSize = 256 м для модульных тестов - все еще работает
- При включенном
-XX:+TraceClassLoading
и-XX:+TraceClassUnloading
я не вижу дополнительных "загружаемых" событий при выполнении последних 20-30 тестов передOutOfMemoryError
.
Последнее, по-видимому, предполагает, что что-то помимо объектов класса заполняет PermGen, нет? Если да, то что это может быть? Например, существуют ли обстоятельства, когда класс экземпляры хранятся в PermGen?
Здесь моя информация о VM:
$ java -version
java version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)
связанные
FWIW, корень моей проблемы, который ускорил этот пост, оказался несколько тривиальным: я предположил, что плагин Maven Surefire наследует параметры VM от MAVEN_OPTS (или экземпляр VM, запущенного mvn), когда он вилки VM - он делает не (boo). Нужно указать те, которые явно используют argLine в конфигурации плагина. НТН.