powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Рекурсивный вывод директорий
10 сообщений из 35, страница 2 из 2
Рекурсивный вывод директорий
    #38454756
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСобственно применение рекурсии вообще не является атипаттерном.

Когда как. Если у нас возможны глубокие рекурсии, то нужно разворачивать. Если у нас многопоточный сервер, то можно сэкономить памяти уменьшив размер стека. Но алгоритмы реализованые на рекурсии нам могут испортить всё удовольствие от оптимизации.

maytonОна (рекурсия) де-факто присутствует во многих библиотеках XML-парсеров, regexps e.t.c.

Это не делает рекурсию автоматически хорошим решеним.
http://search.oracle.com/search/search?search_p_main_operator=all&start=1&group=bugs.sun.com&q=StackOverflowError

maytonСчастливые обладатели Java7 радостно танцуют
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#isSymbolicLink(java.nio.file.Path)

Да там вообще сплошные танцы
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#walkFileTree(java.nio.file.Path, java.util.Set, int, java.nio.file.FileVisitor)
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38454862
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczmaytonОна (рекурсия) де-факто присутствует во многих библиотеках XML-парсеров, regexps e.t.c.

Это не делает рекурсию автоматически хорошим решеним.
http://search.oracle.com/search/search?search_p_main_operator=all&start=1&group=bugs.sun.com&q=StackOverflowError

Я думаю "дорога ложка к обеду". Сама по себе задача разворачивания рекурсии в Stack<>
сложна и нетрививиальна. Ее невозможно зеэстимэйтить по срокам. Поэтому лучше пока кодить
как есть. А при возникновении Stack Overflow думать над оптимизациями. Возможно они лежат
в плоскости шардинга или уменьшения объёма задачь путём деления на части (порции) обработки.

Но саму постановку типа разворачивание рекурсии я никому не пожелаю в качестве дефекта
или ТЗ на доработку.
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38454872
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСама по себе задача разворачивания рекурсии в Stack<> сложна и нетрививиальна.
Почему? Тут у автора на стеке одна переменная - File - решение банальное на цикле выходит.
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38454887
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczmaytonСама по себе задача разворачивания рекурсии в Stack<> сложна и нетрививиальна.
Почему? Тут у автора на стеке одна переменная - File - решение банальное на цикле выходит.
Вот пускай он щас в топике без подсказок это воплотит. А еще я-бы голосование поднял.
Какой процент разработчиков (неглупых в своём классе из знающих прекрасно предметную
область) вообще захотят браться за разворот рекурсий.
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38454905
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот пускай он щас в топике без подсказок это воплотит.

Не аргумент.

maytonА еще я-бы голосование поднял.
Какой процент разработчиков (неглупых в своём классе из знающих прекрасно предметную
область) вообще захотят браться за разворот рекурсий.
Тоже.

В чем именно сложности? Мне правда интересно. Объединяем все переменные хранимые на стэке в одну структуру.
Заводим коллекцию под стэк, пока стэк не пуст, заполняем\удаляем из него элементы в зависимости от логики рекурсии.
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38454998
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блажкович. Я думаю что для тебя действительно это не проблема. Но я вел немного
практику у студентов и я знаю над чем они парятся и что у них вызывает реальный
затык. Это просто результат моих наблюдений. Не бизнес-код а именно алгоритмизация
вызывает у них зависание головного мозга.
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38455032
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Зачем развертывать в рекурсию, которая нуждается в стеке состояний?
Чтобы она вместо своего стека в случае чего могла заполнить всю память JVM?
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38455046
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманЗачем развертывать в рекурсию, которая нуждается в стеке состояний?

А зачем вообще нужна рекурсия если она не нуждается в этом стеке? :)

ЛагманЧтобы она вместо своего стека в случае чего могла заполнить всю память JVM?
Именно. По-идее цикл должен быть быстрее. Цикл не приведет к StackOverflowError в случае глубокой рекурсии. Хотя это можно решить, запуская задачу через новый поток с заданным размером стека.
Ну, и как я уже написал выше, если у нас многопоточный сервер, мы сможем сэкономить на памяти. Ведь стэк под поток выделяется целиком и сразу фиксированого размера. А с коллекцией в куче, память выделяется только там где этого действительно нужно для обсчета рекурсии.
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38455052
Лагман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Ок, убедили :)
...
Рейтинг: 0 / 0
Рекурсивный вывод директорий
    #38455155
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛагманBlazkowicz,

Ок, убедили :)
Как же ты быстро сдался.
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Рекурсивный вывод директорий
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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