![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
собственно из-за чего может возникать данная ошибка и как ёё отловить? java.lang.OutOfMemoryError: Java heap space
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Модератор: Название темы должно отражать ее суть!
Данная ошибка означает, что кончилась память у ява машины. Либо выделить больше памяти при запуске (ключ -Xmx) или экономнее расходовать память. Поищи по форуму тема неоднакратно обсуждалась. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
снова у меня вылезла эта ошибка.. А как можно контролировать память у ява машины?? вот я сейчас постараюсь исправить некоторые классы в которых переменные int хотя там в полне хватит byte. и как смотреть насколько легче приложению стало??
кстати LSD, это бывает во время копирования моих листов (тема недавняя с копированием листов).. может надо классы которые я копирую оптимизировать? забрать int де не надо.. или ещё может что? а бывает что просто в конце выведет Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space и всё приложение виснит а бывает так listMarking = [Main.Markings@1cf662f, Main.Markings@13dd208, Main.Markings@1a8402c, Main.Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Markings@10d0eae, MainMarkings@3eec1a, Main.Markings@fedfb6, Main.Markings@1115152, и дальше список продолжается (это я просто вывод листов делал) Это сообщение отредактировал(а) Reptor - 4.7.2008, 15:06 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
1. Посчитать сколько сами данные занимают, а то может оперативки не хватит на оба экземпляра. Тогда тут вообще ничего не поделаешь. 2. Там копирование идет через сериализацию, и используется буфер в памяти. Значит потребляемый объем памяти будет более чем в 3 раза больше, чем занимает один лист. Чтобы снизить расход памяти надо или сериализовывать на диск в файл (что медленнее) или сделать глубокое клонирование. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
LSD, ещё что интересно это то что копирование у меня осуществляется при нажатии на кнопку вот... и первый раз всё проходит нормально а вот когда я второй раз нажимаю тоесть делаю ещё +1 лист то тут то и вываливается эта ошибка... может с предыдущего раза что то остаётся висеть?
|
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
ну код хотя бы свой приведи... |
|||
|
||||
Reptor |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
вот этот метод выполняет копироапние list... и это выполняется при нажатии на кнопку - тоесть нажал на кнопку и создаётся новый объект в конструктор которого отдаю основные list и уже в конструкторе
вот и я ещё раз проверял и вылетает при 2-ом копировании.. тоесть делаю один раз всё хорошо, потом создаю какието окна делаю какието операцыи и всё тоже хорошо и как только 2-ой раз копирую всё виснит с той ошибкой..... или виснит если делаю раз а потом сразу 2-ой... ![]() ![]() |
||||
|
|||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
хотя нет.... бывает так что и на 1-ый раз
прийдёться переделывать так как LSD говорил Это сообщение отредактировал(а) Reptor - 5.7.2008, 12:30 |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
кажись уже понятно в чём дело, а дело в том что я смотрел по процессам ну сколько памяти забирает моё приложение вот и оно начинает виснуть сразу как только оно переходит границу дето 90 000 K.. это всё зависает не на копировании потому что я его даже не включал просто так получалось что как раз на момент 2-ого копирования оно зашкаливало....
И тут у меня не понятки почему такое ограничение... что то я не понимаю а если надо большие порции данных грузить и создавать объект?? В моём случаи создаётся объект и новый занимает дето порядка 11 000К но там я использую везде int а могу везде short или byte... как вы думаете это сможет уменшить размер моего объекта дето с 11 000К ну дето до 8 000 или 7 000 если у меня таких вот private int ну дето 30 а то и больше...?? и ещё дело в том что я работаю в Eclipse вот и он паралельно тоже берёт дето 120 000К. |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
поменял типы но что то это совсем ничего не дало
![]() ![]() ![]() |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
хммм оказывается всё дело в этом
чем больше размер тем больше памяти забирает ооо совсем голова кругом уже |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |