Eclipse Memory Analyzer, но всегда показывает Внутренняя ошибка произошла? - PullRequest
50 голосов
/ 22 марта 2012
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid2584.hprof ...
Heap dump file created [106948719 bytes in 4.213 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at Main.main(Main.java:15)

Но когда я открываю дамп заголовка java_pid2584.hprof через Eclipse Memory Analyzer, но всегда появляется сообщение:

An internal error occurred during: 
"Parsing heap dump from **\java_pid6564.hprof'".Java heap space

Ответы [ 10 ]

84 голосов
/ 22 марта 2012

Проблема в том, что Eclipse Memory Analyzer не хватает места в куче, чтобы открыть файл дампа кучи.

Вы можете решить проблему следующим образом:

  1. открыть файл MemoryAnalyzer.ini

  2. изменить значение по умолчанию -Xmx1024m на больший размер

21 голосов
/ 21 июня 2013

Обратите внимание, что в OS X, чтобы увеличить объем памяти, выделенной для MAT, необходимо щелкнуть правой кнопкой мыши Memory Analyzer.app и показать содержимое пакета.Файл MemoryAnalyzer.ini находится в /Contents/MacOS/.

9 голосов
/ 19 сентября 2016

Решение для той же проблемы для плагина Memory Analyzer в Eclipse в MAC OS X El Capitan.

Я столкнулся с той же проблемой, но с плагином eclipse, и у меня не было приложения Memory Analyzer в папке приложений. Решение, которое работало для меня, было:

  1. Щелкните правой кнопкой мыши значок Eclipse и выберите «Показать содержимое пакета».
  2. Перейти к содержанию> Затмение
  3. Открыть Eclipse.ini
  4. Изменить значение -Xmx1024m на -Xmx2048m
  5. Перезапустить Eclipse
9 голосов
/ 29 июня 2016

В OS X 11.5 (El Cap) изменение MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini не работает! Это потому, что он ищет MemoryAnalyzer.ini в другом месте.

На моем компьютере он искал:

MemoryAnalyzer.app/Contents/Eclipse/MemoryAnalyzer.ini но настоящий файл .ini был: MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini.

Чтобы изменения вступили в силу, скопируйте существующий файл .ini в новое местоположение.

Чтобы найти, где MemoryAnalyzer ищет INI-файл, вы можете запустить:

sudo su
cd ...MemoryAnalyzer.app/Contents/MacOS/
dtruss ./MemoryAnalyzer 2>&1 | grep ini
5 голосов
/ 21 января 2014

Если анализатор памяти используется из Eclipse, то отредактируйте файл eclipse.ini, чтобы увеличить аргумент vm до -Xmx1024m или выше.Это сработало для меня.http://wiki.eclipse.org/index.php/MemoryAnalyzer/FAQ#Out_of_Memory_Error_while_Running_the_Memory_Analyzer

1 голос
/ 06 мая 2019

Как подсказывают другие, это простой двухэтапный процесс: -

  1. откройте файл MemoryAnalyzer.ini из установочного каталога MAT.

  2. изменить значение по умолчанию -Xmx1024m на больший размер, например, если вам нужно проанализировать дамп кучи объемом 4 ГБ, вы можете заменить -Xmx1024m на -Xmx5g или -Xmx6g

Для получения более подробной информации см .: - https://better -coding.com / решена-затмение-мат-Java-куча-пространство ошибок /

1 голос
/ 10 мая 2013

Я также попробовал все решения здесь, все еще получая ту же ошибку, и причина, по которой eclipse пыталась открыть файл .hprof как текстовый файл из-за неправильного или неизвестного типа файла / ассоциации редактора.

Решение: щелкните правой кнопкой мыши файл, выберите «Открыть с помощью», затем выберите «Другие» и выберите «Eclipse Memory Analyzer».

Работал с дампом 700 МБ и с дампом 2G на куче затмений около 600M.

0 голосов
/ 22 мая 2018

Если вы используете Mac, попробуйте запустить исполняемый файл в папке «mat.app» с параметром -data, с помощью которого вы можете указать путь для записи:

cd mat.app/Contents/MacOS
./MemoryAnalyzer -data <writable_path>
0 голосов
/ 03 декабря 2012

Произошла внутренняя ошибка. Пространство кучи Java

Ответ: перейдите к вашему проекту Рабочее пространство открыть папку .setting Удалите все файлы из папки .setting. после того, как вы можете скомпилировать теперь нет ошибки вроде кучи Наслаждайтесь:)

0 голосов
/ 22 марта 2012

Вы можете уменьшить лимит памяти вашего приложения, а затем снова сделать дамп.Eclipse Memory Analyzer помещает файл дампа в память - я подозреваю, что в вашем Eclipse меньше памяти, чем в приложении.

Вы также можете сделать наоборот и увеличить предел памяти для Eclipse, но если ваше приложение работает насервера, будет трудно соответствовать по размеру памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...