An internal error occurred during parsing heap dump from java heap space

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...
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)

But when i open head dump java_pid2584.hprof via Eclipse Memory Analyser,but there is always message:

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

Michael Laffargue's user avatar

asked Mar 22, 2012 at 9:57

Gavin's user avatar

4

The problem is that Eclipse Memory Analyser does not have enough heap space to open the Heap dump file.

You can solve the problem as follows:

  1. open the MemoryAnalyzer.ini file

  2. change the default -Xmx1024m to a larger size

ICR's user avatar

ICR

13.8k4 gold badges47 silver badges77 bronze badges

answered Mar 22, 2012 at 10:15

codeisee's user avatar

codeiseecodeisee

1,5322 gold badges10 silver badges9 bronze badges

7

Note that on OS X, to increase the memory allocated to MAT, you need to right-click mat.app and show the package contents. The MemoryAnalyzer.ini file is under /Contents/Eclipse.

Chris H.'s user avatar

Chris H.

2,1651 gold badge18 silver badges18 bronze badges

answered Jun 21, 2013 at 18:28

tkincher's user avatar

tkinchertkincher

6915 silver badges6 bronze badges

Solution for same issue for Memory Analyzer plugin in Eclipse in MAC OS X El Capitan.

I was facing the same issue but with the eclipse plugin and I did not have any Memory Analyzer App in Applications Folder. The solution which worked for me was:

  1. Right Click on Eclipse icon and select Show Package Content.
  2. Go to Contents>Eclipse
  3. Open Eclipse.ini
  4. Change value -Xmx1024m to -Xmx2048m
  5. Restart Eclipse

answered Sep 19, 2016 at 9:43

Abhishek Garg's user avatar

1

On OS X 11.5 (El Cap) modifying MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini does not work! This is because it’s looking for the MemoryAnalyzer.ini in a different place.

On my computer, it was looking for:

MemoryAnalyzer.app/Contents/Eclipse/MemoryAnalyzer.ini but the real .ini file was:
MemoryAnalyzer.app/Contents/MacOS/MemoryAnalyzer.ini.

In order for your changes to take effect, copy the existing .ini file into the new location.

To find where MemoryAnalyzer is looking for the ini file, you can run:

sudo su
cd ...MemoryAnalyzer.app/Contents/MacOS/
dtruss ./MemoryAnalyzer 2>&1 | grep ini

answered Jun 29, 2016 at 20:33

Russell Cohen's user avatar

2

As suggested by others, its two step simple process:-

  1. open the MemoryAnalyzer.ini file from your MAT installation directory.

  2. change the default -Xmx1024m to a larger size for e.g. if you have to analyze a 4GB heap dump then you can replace -Xmx1024m with -Xmx5g or -Xmx6g

For more details refer:-
https://better-coding.com/solved-eclipse-mat-java-heap-space-error/

answered May 6, 2019 at 8:46

Abhishek Phoenixz's user avatar

For my experience add in MemoryAnalyzer.ini, Xms and Xmx to the max as your materiel possibilities. G1GC is faster and -XX:-UseGCOverheadLimit is need because gc usage can be high and time consuming, and maybe -XX:+UseStringDeduplication is the key to consume less memory

-vmargs
-Xms8g
-Xmx8g
-XX:-UseGCOverheadLimit
-XX:+UseG1GC
-XX:+UseStringDeduplication

answered Nov 19, 2020 at 10:22

Mr_Thorynque's user avatar

Mr_ThorynqueMr_Thorynque

1,71119 silver badges31 bronze badges

1

If you are using Mac, try running the executable inside the mat.app ‘folder’ with -data option, by which you can specify a writable path:

cd mat.app/Contents/MacOS
./MemoryAnalyzer -data <writable_path>

answered May 22, 2018 at 13:41

snowfox's user avatar

snowfoxsnowfox

1,8181 gold badge20 silver badges21 bronze badges

I tried all the solutions here as well, while still getting the same error and the reason eclipse was trying to open the .hprof file as a text file due to wrong or unknown file type / editor association.

Solution: Right click on the file, select open with, then select Others, and select Eclipse Memory Analyzer.

Worked with 700MB dump, and worked with 2G dump on an eclipse heap of about 600M.

answered May 10, 2013 at 19:43

mibrahim's user avatar

An internal error has occurred. Java heap space

Ans: GO to Your Project Work space
open .setting folder
Delete all file of .setting folder.
after you can compile
now there is no error Like Heap space
Enjoy :)

answered Dec 3, 2012 at 13:44

Hemang Rami's user avatar

You may reduce your application memory limit, and then again take a dump. Eclipse Memory Analyser puts dump file to memory — I suspect that your Eclipse has less memory than the limit of application.

You can also do the opposite and increase the memory limit for Eclipse, but if your application works on a server, it will be hard to match in size of memory.

answered Mar 22, 2012 at 10:12

wojand's user avatar

wojandwojand

1435 bronze badges

3

Hello Everyone,

Interesting thing today; so in my adventures in running a diagnostic for why Java crashed; I got… a Java Crash on my computer when trying to open the crash dump!  Okay not really but still interesting.

To analyze a hprof crash for why Java crashes; you can use a tool such as the Eclipse Memory Analyzer.  This Open Source Project is a great tool and item to start with for analyzing crash dumps

https://www.eclipse.org/mat/

Unfortunately after getting the program and opening the crash file which I was hoping to analyze my computer encountered the error:

2017-10-17_0928.png

'Parsing heap dump from 'C:Usersstenbm2Downloadsjava_pid17404.hprof" has encountered a problem.

An internal error occurred during: "Parsing heap dump from 'C:Usersstenbm2Downloadsjava_pid17404.hprof'".

This most certainly cannot be!  But we can always find more errors; so let’s “follow the logs”!

2017-10-17_0938.png

And we then find the errors:

2017-10-17_0939.png

eclipse.buildId=unknowneclipse.buildId=unknownjava.version=1.8.0_121java.vendor=Oracle CorporationBootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_USCommand-line arguments:  -os win32 -ws win32 -arch x86_64
org.eclipse.core.jobsErrorTue Oct 17 09:28:00 EDT 2017An internal error occurred during: "Parsing heap dump from 'C:Usersstenbm2Downloadsjava_pid17404.hprof'".
java.lang.OutOfMemoryError: Java heap space at org.eclipse.mat.parser.index.IndexWriter.copyOf(IndexWriter.java:2013) at org.eclipse.mat.parser.index.IndexWriter$Identifier.add(IndexWriter.java:93) at org.eclipse.mat.hprof.HprofParserHandlerImpl.reportInstance(HprofParserHandlerImpl.java:588) at org.eclipse.mat.hprof.Pass1Parser.readInstanceDump(Pass1Parser.java:546) at org.eclipse.mat.hprof.Pass1Parser.readDumpSegments(Pass1Parser.java:360) at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:175) at org.eclipse.mat.hprof.HprofIndexBuilder.fill(HprofIndexBuilder.java:80) at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:222) at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:126) at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:145) at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:83) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

2017-10-17_0940.png

eclipse.buildId=unknown
java.version=1.8.0_121
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64

org.eclipse.mat.ui
Info
Tue Oct 17 09:27:44 EDT 2017
Detected compressed references, because with uncompressed 64-bit references the array at 0x7801192b8 would overlap the array at 0x780117210

And from the first error the primary code: java.lang.OutOfMemoryError: Java heap space

Egads!  So thus the program to analyze Java Heap Crashes; crashed due to a Java Heap Space Error.

Well for Java Heap Space errors this can be corrected by checking the configuration for the impacted program/system.  In this case, your installation folder should have the MemoryAnalyzer.ini file for the Java configuration.

2017-10-17_1346.png

From there; I was able to find the below information:

-startup
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
-vmargs
-Xmx1024m

So to start; we can find the above has the xmx configuration (one of the more popular configuration references for Java); which is for the MaxHeapSize for Java.  In this case the -Xmx1024m indicates that the system allocates approximately 1 GB of Memory for the Maximum Heap Size.  Additionally:

-Xms

-> This is for the Initial Heap Size.  This would be initial value used and in general case is the amount that will usually grow from this size.

-Xmx

-> This is for the Maximum Heap Size that is allowed.  If insufficient; Java can crash with the OutOfMemoryError we saw earlier.

While this is a tricky topic; it isn’t advisable to just increase the Java Heap Value on systems such as production without understanding the cause.  In this case, it’s on my personal laptop and the HPROF file I was trying to reach was approximately 3.9 GB so I increased the value to 2 GB in the ini file and then relaunched (from 1024 to 2048m).  However, your results may vary -> as my laptop had 8 GB of RAM.

To Do List -> More advanced topics on Java and memory allocation as this can be explained in greater detail to help confirm troubleshooting/reviews for possible/probable causes of crashes/unstable memory handling and what can be done to correct the crash.

http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Ftasks%2Fconfigure_mat.html

8 ответов

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

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

  • откройте файл MemoryAnalyzer.ini

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

codeisee
22 март 2012, в 10:58

Поделиться

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

tkincher
21 июнь 2013, в 19:44

Поделиться

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

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

  • Щелкните правой кнопкой мыши значок Eclipse и выберите «Показать содержимое пакета».
  • Перейдите в раздел Содержание > Eclipse
  • Открыть Eclipse.ini
  • Изменить значение -Xmx1024m на -Xmx2048m
  • Перезапуск Eclipse

Abhishek Garg
19 сен. 2016, в 11:41

Поделиться

В 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

Russell Cohen
29 июнь 2016, в 20:47

Поделиться

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

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

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

mibrahim
10 май 2013, в 21:23

Поделиться

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

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

wojand
22 март 2012, в 11:20

Поделиться

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

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

Hemang Rami
03 дек. 2012, в 13:50

Поделиться

Ещё вопросы

  • 1JSpinner возвращает значение по умолчанию вместо типизированного
  • 1эффективная 3D-интерполяция / аппроксимация в Scipy (Python)
  • 0переменная объема не отражена в директиве
  • 1оператор import отображает ошибку «Нет такого модуля»
  • 0Сохранение данных дает ошибку, параметр отсутствует или значение пусто
  • 1Выравнивание текста символов ASCII
  • 1Панель консоли в JavaFX
  • 1Аудио запись
  • 0Каков наилучший метод для глобального var в функции / классе? PHP
  • 0HTML-страница и весна
  • 1Ошибка при получении данных JSON в node.js
  • 0Как перебрать все ключи кроме одного в руле?
  • 0синтаксическая ошибка, неожиданный T_PRIVATE — Magento
  • 1Перевести Java выражение / формулу в Objective-C
  • 0Положение изображения не одинаково для разных браузеров
  • 1WPF Animation останавливается самопроизвольно
  • 1Сортировка ArrayList <String> с пользовательским компаратором
  • 1Более обратный формат даты возврата
  • 0PHP Run скрипты без необходимости открывать окно браузера
  • 1Android TabHost
  • 0Добавить текст в начале определенной строки в PHP
  • 1Запуск / остановка потока Python из другого потока вызывает непредвиденное поведение
  • 0Отключить прокрутку страницы, но разрешить прокрутку карты Google
  • 1Путаница в стилях загрузки классов
  • 1Причал отвечает ненужным перенаправлением
  • 1Android DatagramSocket не работает правильно
  • 1Winforms / Devexpress / Tab Control разделение концерна / Общая раскладка кода
  • 0Laravel Artisan Migrate отказано в соединении
  • 0Установление имени, связанного с HTML-ссылкой
  • 0Найти обработчики приложений?
  • 0Использование ng-show в директиве
  • 0Где разместить запросы Doctrine, использующие несколько сущностей в Symfony2?
  • 1Как принять Ctrl + Enter в качестве возврата при обработке события Enter для текстового поля в WPF?
  • 0Как выполнить событие нажатия одной кнопкой, чтобы выбрать другой DIV
  • 0JQuery Хорошая практика кодирования
  • 1Синхронизировать второй размер окна, чтобы соответствовать размеру основного окна
  • 1просмотр списка андроида nullpointer.exception
  • 0создание шаблона конструктора шаблонного класса
  • 0мой setTimeout не работает правильно
  • 1Приложение Android неожиданно останавливается при сборке … Проблема с файлом XML-макета?
  • 1Можно ли частично отключить правило пилинта на основе его сообщения?
  • 0PHP: добавить методы, вызывающие $ this, к существующим классам
  • 0Angular JS, как иметь два отдельных «главных» дисплея, которые могут часто меняться
  • 0Использование ссылок для доступа к объектам класса C ++
  • 0Angular.js, добавить строку к имени переменной?
  • 0Я хочу изменить ключ многомерного массива
  • 0Mongify — не работает соединение SQL и соединение mongo
  • 0Mysql enum не ищет запись без значения цитаты
  • 1firebase.auth.currentUser возвращает ноль, пока не введете что-либо в форму
  • 0Как запросить Google статические карты API для всех уличных суффиксов в почтовом индексе?
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

11 ответы

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

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

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

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

ответ дан 30 дек ’14, 13:12

Обратите внимание, что в OS X, чтобы увеличить память, выделенную для MAT, вам нужно щелкнуть правой кнопкой мыши mat.app и покажите содержимое упаковки. В MemoryAnalyzer.ini файл находится под /Contents/Eclipse.

ответ дан 31 окт ’20, 22:10

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

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

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

Создан 19 сен.

В 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

Создан 29 июн.

Создан 21 янв.

Как было предложено другими, это простой двухэтапный процесс: —

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

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

Для получения дополнительной информации см .: —
https://better-coding.com/solved-eclipse-mat-java-heap-space-error/

ответ дан 06 мая ’19, 09:05

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

cd mat.app/Contents/MacOS
./MemoryAnalyzer -data <writable_path>

ответ дан 22 мая ’18, 14:05

По моему опыту добавить MemoryAnalyzer.ini, Xms и Xmx по максимуму в качестве возможностей вашего оборудования. G1GC быстрее, и требуется -XX: -UseGCOverheadLimit, потому что использование gc может быть большим и трудоемким, и, возможно, -XX: + UseStringDeduplication является ключом к потреблению меньшего объема памяти

-vmargs
-Xms8g
-Xmx8g
-XX:-UseGCOverheadLimit
-XX:+UseG1GC
-XX:+UseStringDeduplication

Создан 19 ноя.

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

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

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

ответ дан 10 мая ’13, 20:05

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

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

ответ дан 22 мар ’12, в 10:03

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

Ответ: ПЕРЕЙДИТЕ в рабочее пространство вашего проекта, откройте папку .setting. Удалите все файлы из папки .setting. после того, как вы можете скомпилировать, теперь нет ошибки. Like Heap space Enjoy :)

ответ дан 03 дек ’12, 13:12

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

java
eclipse
memory

or задайте свой вопрос.

Понравилась статья? Поделить с друзьями:
  • An internal error has occurred while loading the configuration file serious sam hd что делать
  • An error occurred writing the file make sure you have write access
  • An error occurred with the boot selection verify media is present and retry перевод
  • An error occurred with file import error code 1 zbrush
  • An unexpected error has occurred error code 0xc00000e9