2015-11-25 4 views
0

Я бегу мое приложение с помощью Java 8, однако я получаю следующее сообщение об ошибке:Java 8: Ошибка OutOfMemory, измените MaxPermSize?

java.lang.OutOfMemoryError: GC overhead limit exceeded 

Я попытался увеличить MaxPermSizeот 512M до , но до сих пор я получаю ту же ошибку. Как я могу это решить?

+1

Рассмотрите возможность взглянуть на [этот пост.] (Http://stackoverflow.com/questions/5839359/java-lang-outofmemoryerror-gc-overhead-limit-exceeded) – Keews

+2

MaxPermSize в JVM v8 не будет работать - там нет PermGen. – Arek

+0

Спасибо за ответы, если нет PermGen, как я могу исправить проблему? – java123999

ответ

3

Как комментарии @Ajan, Java 8 больше не имеет «кучу влаги», и этот параметр будет проигнорирован.

Но это совсем не проблема с пергеном. Фактически, это, скорее всего, признак того, что основная куча Java заполнена. Это исключение возникает, если JVM обнаруживает, что GC занимает слишком большую долю от общего времени CPU за последние несколько циклов GC. Обычно это происходит из-за того, что куча приближается к полной, и GC запускается все чаще и чаще.

Таким образом, «быстрое исправление» проблемы будет заключаться в увеличении размера основной кучи с использованием опции -Xmx.... Однако, если реальная проблема в том, что у вас есть утечка памяти, тогда это только откладывает неизбежное. Если вы уже не понимаете, почему ваше приложение использует много памяти, вам, вероятно, следует начать поиск утечек памяти.

+0

Спасибо за ответ, -Xmx уже установлен на 1024, должен ли я его продолжить? Для чего я должен это сделать? – java123999

+0

Если вы уже увеличили -Xmx, я бы посоветовал искать потенциальную утечку памяти, прежде чем увеличивать ее. –

+0

Спасибо, но я хотел бы видеть, работает ли это исправление тем временем, что бы вы предложили увеличить его? – java123999

Смежные вопросы