powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как обработать потенциальную нехватку памяти?
5 сообщений из 30, страница 2 из 2
Как обработать потенциальную нехватку памяти?
    #38677668
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Самый неправильный пример это такой :
Код: java
1.
2.
3.
 String string = new String();
 SoftReference<String> sr = new SoftReference<String>(string);
 String str = sr.get();



http://habrahabr.ru/post/169883/

на weak - можно построить кеш - ( как WeakHashMap)

Array[] - в котором будут не ссылки на объекты а weak ссылки ,в которых будут ссылки на ваши объекты -
тогда объекты могут быть уничтожены ... и wr.get() = вернет null.


http://javarevisited.blogspot.ru/2014/03/difference-between-weakreference-vs-softreference-phantom-strong-reference-java.html

2. заменить разбор в памяти и перенести его в файлы ... будем много работы с диском, но так работают во всех конторах где есть задачи разбора больших файлов ...

(логи, видео потоки итд ...) + либы типа Hadoop for Data Analytics , Hadoop MapReduce итд
...
Рейтинг: 0 / 0
Как обработать потенциальную нехватку памяти?
    #38677708
esy301s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid Kudryavtsev...
1. Нормальный алгоритм. Где требования к ресурсам не связаны (слабо связаны) с размером файла.
2. Если корреляция есть - ограничение на размер обрабатываемого файла
3. Если хочется полностью независимости по памяти - запускать дочернею JVM.



В принципе и я о том же, но вопрос был о программе парсящей файлы, собсно и ответил что если памяти недают попробовать жрать поменьше если меньше жрать нельзя матюкнутся и откатиться все ж лучше чем по оутофмемори вылететь с непонятным состоянием.
Если обработать нельзя постараться предотвратить...

Собственно это очевидные вещи же.

Имхо дальнейшее обсуждение имеет смысл уже с уходом в предметную область что именно и как делается ...
...
Рейтинг: 0 / 0
Как обработать потенциальную нехватку памяти?
    #38677775
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwhite902. Совсем плохая ситуация, если программа свалилась, перед этим правда часть распарсила, пользователь видит результат(частичный), смотрит, что выполнение закончилось и думает, что всё уже успешно закончилось. Как такое предотвратить? catch(Throwable) ?
В идеале твой парсер должен быть - finite state machine . Это предполагает фиксированную память на его
тело при бесконечном разнообразии входных файлов. Эту память можно умножить на количество экземпляров
паралельных потоков если таковые будут. При благоприятном стечении обстоятельств такой парсер проработает
долгие годы пока не упадёт железо или ОС на сервере.

В некоторых параноидальных вариантах отказоустойчивости ты можешь запускать 2 java процесса( по аналогии
со средой разработки Idea, которая запускает другие экземпляры компилляций как отдельные процессы). Первый
будет хозяином (master-process). Он будет запускать парсеры и контролировать факт их успешного завершения.
Как контролировать - это ты сам решишь. К примеру парсер после завершения может переименовывать файлы
в *.$$$ как признак. Главное чтоб фиксация была атомарной с точки зрения диска.

Для долго-играющих процессов можно ввести Watchdog timer, или Hearbit как признак того что процесс еще
жив. И убивать его в случае тишины или неответа в заданный период.
...
Рейтинг: 0 / 0
Как обработать потенциальную нехватку памяти?
    #38677956
chabapok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. надо подсунуть парсеру данные, которые нагрузят его сильнее, чем реальные данные, и посмотреть как он будет работать.

2. если одного потока гарантированно хвататет, то можно при ооme останавливать парсящий поток и оставлять эту часть работы в очереди - для обработки другими потоками.
...
Рейтинг: 0 / 0
Как обработать потенциальную нехватку памяти?
    #38678753
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увеличить swap XOR хранить промежуточные вычисления (результаты) на диске.
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Как обработать потенциальную нехватку памяти?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]