Смотрю на urllib3 python library и там retries реализовано как рекурсия. я бы такое реализовал как while().
Внимание - вопрос! Рекурсия это хорошо или плохо?
Форум → Программирование → Общие вопросы программирования → Рекурсия это хорошо или плохо?
Страницы: ← Следующая страница →
26 января 2016 г. 20:28, спустя 27 минут 14 секунд
С мобилы, по этому кратко. Рекурсия с неконтролируемой вложенностью -- плохо )
26 января 2016 г. 20:41, спустя 13 минут 33 секунды
@phpdude, в плане производительности рекурсия, конечно, сосёт. поэтому умные компиляторы умеют разворачивать хвостовую рекурсию в цикл
26 января 2016 г. 20:57, спустя 15 минут 28 секунд
@phpdude, в плане производительности рекурсия, конечно, сосёт. поэтому умные компиляторы умеют разворачивать хвостовую рекурсию в цикл
@master, + call stack увеличивается. Вот я и удивился отчего же у них там рекурсия то
@phpdude, в плане производительности рекурсия, конечно, сосёт. поэтому умные компиляторы умеют разворачивать хвостовую рекурсию в цикл
@master, а ну в плане написания она проще - да и кода как правило меньше занимает. Вопрос - чему проще обучиться? Рекурсии или циклу? :)
26 января 2016 г. 21:05, спустя 8 минут 48 секунд
@phpdude, говнокодить-то всегда проще. но с циклами вернее, не всякий транслятор умеет TCO
Does Python optimize tail recursion?
I have the following piece of code which fails with the following error: RuntimeError: maximum recursion depth exceeded I attempted to rewrite t
stackoverflow.com
26 января 2016 г. 21:08, спустя 2 минуты 6 секунд
@master, да, любопытно
в общем низачод urllib3 team да? :)
26 января 2016 г. 21:53, спустя 5 минут 27 секунд
Дуд опять троллингует
@Crank, отчегожэ
26 января 2016 г. 21:55, спустя 2 минуты 46 секунд
@phpdude, такое ощещение что ты задал вопрос уже зная ответ ))))
26 января 2016 г. 21:58, спустя 2 минуты 32 секунды
@phpdude, такое ощещение что ты задал вопрос уже зная ответ ))))
@Crank, тебе ощущается всего лишь :)
27 января 2016 г. 3:56, спустя 5 часов 1 минуту 57 секунд
@master, да, любопытно
Спустя 17 сек.в общем низачод urllib3 team да? :)
@phpdude, скорее да.
ведь циклы потом тоже разворачиваются в линейную последовательность команд. ещё Мыщъх в своей статье об оптимизации алгоритмов описывал нюансы производительности: современные компьютеры выполняют линейные последовательности намного быстрее циклов и намного-намного быстрее рекурсии за счёт своей суперскалярной архитектуры. когда цикл переходит на следующую итерацию - весь конвейер сбрасывается, соответственно, вся работа блоков предварительной выборки/предсказаний коту под хвост.
27 января 2016 г. 3:59, спустя 2 минуты 58 секунд
@master, ну да, есть логика в этом
27 января 2016 г. 4:14, спустя 14 минут 30 секунд
Internet Archive Wayback Machine [web.archive.org]
"Суперскалярные микропроцессоры, построенные по конвейерной архитектуре (а все современные микропроцессоры именно так и устроены), быстрее всего выполняют линейный код и ненавидят ветвления. В лучшем случае они дезориентируют процессор, слегка приостанавливая выполнение программы, в худшем же - полностью очищают конвейер. А на последних Pentium'ах он очень длинный (и с каждой последующей моделью становится все длиннее и длиннее). Быстро его не заполнишь... на это может уйти не одна сотня тактов, что вызовет обвальное падение производительности.
Оптимизация переходов дает значительный выигрыш, особенно если они расположены внутри циклов (кстати говоря, циклы - это те же самые переходы), поэтому качество компилятора не в последнюю очередь определяется его умением полностью или частично избавляться от ветвлений."
Internet Archive Wayback Machine
web.archive.org
InsidePro Software offers professional solutions for hash cracking
InsidePro Software offers professional and free solutions for hash cracking
insidepro.com
Техника оптимизации под Linux (Часть 2 - ветвления)
Техника оптимизации под Linux (Часть 2 - ветвления)
web.archive.org
Техника оптимизации под Linux (часть 3)
Техника оптимизации под Linux (часть 3)
web.archive.org
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!