|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
|||||||||||
Всегда java.lang.OutOfMemoryError: Java heap space01.02.2021, 17:52. Показов 3067. Ответов 3
Метки нет (Все метки)
Добрый день, люди.
Очень нужна ваша помощь, как так я уже не знаю, что делать. Нет алгоритма действия. Есть код, который отправляет файлы через соап-сервис. Внутри программы файл энкодится в Base64, оборачивается SOAP-оберткой и едет через soapConnection.call(). Но, как мне кажется, это и не важно, так как проблема не в невозможности что-то отправить. На маленьких файлах программа работает отлично. Но стоит придти файлу с размером 180мб, как программа падает. И тут я не понимаю. В системе еще 3Гб свободной ОЗУ, всего 8гб. Настройки JVM
Написал тестовый код, который тоже энкодит и складывает в неочищаемую память:
На файле 182491 Кб программа падает уже на второй итерации, а на файле 88288 Кб (который успешно отправляется изначальной программой) - только на четвертой. Хотя разница размеров не в 4 раза... _____________________________________ В общем, я не знаю, как надо настроить JVM, чтобы код не падал даже на большом файле. Хотя какой же он большой - даже 200мб нет. Очень прошу помочь.
0
|
|||||||||||
| 01.02.2021, 17:52 | |
|
Ответы с готовыми решениями:
3
java.lang.OutOfMemoryError ошибка java.lang.OutOfMemoryError... java.lang.OutOfMemoryError: unable to create new native thread |
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 01.02.2021, 18:26 | |
|
стэктрэйс где?
0
|
|
|
-12 / 3 / 0
Регистрация: 02.04.2012
Сообщений: 347
|
||||||||||||
| 01.02.2021, 20:36 [ТС] | ||||||||||||
Тогда уж и код надо добавить:
0
|
||||||||||||
|
53 / 27 / 9
Регистрация: 04.05.2013
Сообщений: 83
|
|
| 06.02.2021, 21:55 | |
|
С таким размером данных размер кучи должен быть ну очень большим.
181 МБ изначальных данных (если байты превращаются в строку, то умножаем на 2), Base64.Encoder.encodeToString порождает еще два массива аналогичного размера, ToUnknownStream.characters(String) еще выделяет один массив двойного размера. Итого 181 * 5 (* 6) = 905 МБ (1086 МБ для строки). Это только примеры беглово анализа стектрейса, вероятно, где-нибудь происходит еще выделение памяти. Непонятно, какую нагрузку держит код, и если такого размера данные идут потоком, то выделенные 4 ГБ уйдут очень быстро. Если данные на отправку не копятся в очереди в памяти, то можно вызывать сборщик мусора после каждой отправки.
1
|
|
| 06.02.2021, 21:55 | |
|
Помогаю со студенческими работами здесь
4
render file.fo (>5Mb) to pdf java.lang.OutOfMemoryError
'fr.java': Ошибка #: 300 : method getObject(int) not found in class java.lang.String строка 33, символ 18 Exception in thread "main" java.lang.NoClassDefFoundError:c:HelloWorldApp/java Ошибка Java Head Space Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию. . .
|