|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
|
java.lang.OutOfMemoryError07.11.2006, 08:48. Показов 17168. Ответов 61
Метки нет (Все метки)
java.lang.OutOfMemoryError
- иногда выдается (очень редко) непонятно почему. Можно что-то предпринять?
0
|
|
| 07.11.2006, 08:48 | |
|
Ответы с готовыми решениями:
61
ошибка java.lang.OutOfMemoryError... java.lang.OutOfMemoryError: unable to create new native thread render file.fo (>5Mb) to pdf java.lang.OutOfMemoryError |
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 15.11.2006, 19:24 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
||
| 15.11.2006, 19:34 [ТС] | ||
Рекурсии не было, были эпизодические случаи которые сразу побуждали поток завершаться досрочно.
0
|
||
|
paradise
|
|||
| 16.11.2006, 21:43 | |||
Прослеживается явное непонимание автором поста сути OutOfMemoryError. У JVM есть верхний предел использования памяти, достигнув которого, получаем OutOfMemoryError. Это раз. OutOfMemoryError не обязательно результат ошибки. А если у автора канал будет огромный и по его расчетам ему надо будет иметь 1000000 потоков? Здесь ошибка в логике работы, причем явная. Это два. Не пойму, причем тут JVM и свопинг? Поставьте верхний придел памяти больше физической и создавайте кучу объектов. Память JVM не будет свопиться? |
|||
|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
||
| 21.11.2006, 01:13 [ТС] | ||
Сейчас экспериментирую в рамках своей задачи про обход сайта (мысль такая, что каждый встреченный на странице url загружается в новом потоке - так вот, если потоков в итоге 50-100 - все нормально. Если их 1000 - через один java.lang.OutOfMemoryError. ОС показывает оперативной памяти - jvm - 18%. (в момент когда ошибки прут). Всего 512М оперативки.
0
|
||
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 21.11.2006, 04:17 | |
|
vlav, дарагой, покажи, как jvm запускаешь. Наверняка же не поставил ключ -Xmx384m =)) И все-таки "у тебя с животом что-то не то..." (с) Еще раз предостерегаю: выход за пределы массива ведет к ArrayIndexOutOfBoundsException, which extends RuntimeException. OutOfMemoryError extends Error, что совсем из другой ветки. Чудес не бывает.
paradise, я все знаю про верний предел, иерархии и пр и пр. Рекомендую мой пост перечитать. Если интересно, конечно. А также пост, на который он был ответом. Да, еще хотел заметить, что, указав взять больше, чем есть физической памяти, вы не позволите jvm создастся.
0
|
|
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 21.11.2006, 04:22 | |
|
vlav, кстати, ты прав. Бесконечная рекурсия возможна. Или просто цикл, создающий объекты (и не убивающий их). Тока с рекурсией обычно вылетает StackOverflowError. Но и твой вариант возможен, если память "съедается" быстрее, чем стек.
0
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 21.11.2006, 04:57 | |
|
По поводу предоставления памяти для JVM из свопа, я склонен к мнению с <A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl13_smAuthorName onmouseover="window.status = window.location;return true;" title="View Danissimo's Profile..." onmouseout="window.status=''return true;" href="void(''); Danissimo - это плохой подход. Помниться, ставил я эксперименты года 3 тому назад, вроде бы уже с J2SE 1.4.2, хотя и не уверен.
Что удивительно, под Windows XP/2000 Java (с правильным ключиком -xmx) позволила выходить за пределы физической памяти (ее было 512Мб) и свопить, но начинались такие тормоза, что было даже сложно убить процесс. Под Sun Solaris же (по-моему памяти там было 2Гб) Java выкидывала злополучную OutOfMemoryError как только пыталась выйти за физические пределы ОЗУ. Возможно своп был неправильно настроен или не был настроен вообще, возможно еще что-то, скорее всего наши собственные ошибки, но проблему эту мы тогда решили экспансивным путем ![]() С уважением, Владимир
0
|
|
|
mishgun
|
||
| 21.11.2006, 06:24 | ||
Я тут решил влезть малость если не возражаете? vlav объясни как у тебя возникает перполнение массива? Конечно моё предложение увеличить память было не совсем хорошим в том смысле что если возникает memory leak то тут увеличивай не увеличивай - результат в конечном итоге будет тот же. Создается впечатление что как раз это и есть причина OutOfMemoryError. Если не трудно покажи код где у тебя возникало это - до исправления и после. Есть подозрение что копается не в ту сторону и ошибка вылетит опять. |
||
|
0 / 0 / 0
Регистрация: 08.06.2011
Сообщений: 63
|
|
| 21.11.2006, 13:21 | |
|
Здесь, действительно, фигня какая-то с алгоритмом. И, сдается мне, от этого и пляшут три страницы постов. Весьма стремно запускать каждый URL в новом потоке, поскольку так их родится немеряно. И в идеале "шайтана" система будет занята не выполнением полезной работы, а созданием потоков (КПД то-бишь).
0
|
|
|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
||
| 21.11.2006, 14:27 [ТС] | ||
0
|
||
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
||
| 21.11.2006, 15:59 | ||
|
Мне интересно!
Покажи, как запускаешь. Хором уже просим =) И, соглашусь с mishgun'ом, покажи код вокруг переполнения до и после пофикса. И еще. Не криминал, но все же лучше запускай поток однажды, а потом просто меняй у него задачу, а не как щас: отработал, умер, а ты запустил новый.
Будут! К бабке не ходи, будут. Ибо "кончилась память" и "кончился массив" -- ну, ваще, разные вещи =)))
0
|
||
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|||||||
| 21.11.2006, 16:11 | |||||||
java -Xmx2g x Говорит: Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine. $ java -version java version "1.5.0_05" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_05-b05) Java HotSpot(TM) Client VM (build 1.5.0_05-b05, mixed mode) Памяти -- 2 Гб. У меня запустить не получилось.
0
|
|||||||
|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
||
| 21.11.2006, 16:20 [ТС] | ||
А вот про собственно топик: java.lang.OutOfMemoryError - они выскакивают , как удалось выяснить, непредсказуемо, при попытке одновременного (из цикла for(int i=0; ///) старта большого количества Threads - больше где 200 - начинают мелькать. То есть поток прерывается аварийно, а точнее не запускается видимо вовсе, потом например еще 5-6 нормально стартуют. Потом опять. Код вкратце приведу вечером.
0
|
||
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
|
| 21.11.2006, 16:37 | |
|
2 Danissimo: память выделял не всю сразу, был задан -xms приемлимых размеров, в процессе выполнения программа требовала больше памяти и приближалась к пределу -xmx, ну и -xmx поскромнее был, но надо будет дома сегодня попробовать, даже же интересно стало про swap и JRE
добавлено: Хм.. есть идея, при попытке захвата JVM памяти близкой к максимальной физической, в безмерном количестве стали свопиться другие программы, отсюда тормоза, задачу я снимал, не дожидаясь OutOfMemoryError С уважением, Владимир
0
|
|
|
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
|
||
| 21.11.2006, 16:42 | ||
Удачи, Владимир
0
|
||
|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
|
| 21.11.2006, 16:50 [ТС] | |
|
Несколько угнетает то что весь этот бардак при 80% свободной памяти физической. И еще я не могу регулировать параметры запуска jvm индивидуально везде.
То есть это должно работать по умолчанию для любой средней машины.
0
|
|
|
4 / 4 / 4
Регистрация: 28.08.2008
Сообщений: 611
|
|
| 21.11.2006, 17:19 | |
|
Ты не переживай. Все, что нужно, это просто обрабатывать ошибки. Как говорят, recover после сбоев. Как ты сам говоришь, можно сделать, например, так: запускаем поток, нет ошибок -- запускаем следующий. И так далее до некоего макс. кол-ва потоков (другими словами, запускаем не бесконечно). Если на какой-то итерации памяти стало мало -- больше не запускаем. Все. Запусщщеное кол-во потоков -- это и есть рабочее число для данной аппаратуры.
Ты не показываешь, как запускаешь jvm, почему? потому чтоне можешь контролировать у пользователей?
0
|
|
|
paradise
|
||
| 27.11.2006, 20:36 | ||
Меня дизайн, как тебе и сказали на первой странице этого флейма и потом еще сто раз повторили. |
||
|
0 / 0 / 1
Регистрация: 14.02.2009
Сообщений: 470
|
||
| 27.11.2006, 23:32 [ТС] | ||
А как эту хрень - java.lang.OutOfMemoryError обработать? И вопросов бы не было!
0
|
||
|
0 / 0 / 0
Регистрация: 22.07.2009
Сообщений: 457
|
|
| 28.11.2006, 00:32 | |
|
Аналогичная проблема, когда java - апплет запускается в браузере клиента. Памятью тоже вроде нельзя управлять. Остается только умерять аппетиты клиентских приложений. А как с этим в web start?
0
|
|
| 28.11.2006, 00:32 | |
|
'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.lang.NoClassDefFoundError Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|