|
Циклы и Рекурсия 🠗 (Волшебник 25.01.2021 10:53) | ☑ | ||
---|---|---|---|---|
0
BaldKiwi
25.01.21
✎
02:55
|
Добрый день, задался таким вопросом, а что потребляет больше памяти, Цикл или Рекурсия и почему?
|
|||
1
rphosts
25.01.21
✎
03:14
|
Рекурсия тащит весь контекст, если ты его не ограничил, потом сами данные для интерпретатора о том, куда вернуть управление... И вообще ранее на глубине рекурсии порядка 6-7К начинались проблемы.
|
|||
2
BaldKiwi
25.01.21
✎
03:20
|
(1) То-есть я правильно понимаю, что допустим для оптимизации, лучше всего использовать циклы, чем рекурсии?
|
|||
3
rphosts
25.01.21
✎
03:53
|
(2) да
|
|||
4
H A D G E H O G s
25.01.21
✎
04:13
|
1.5 Кбайта стека тратится в последнем релизе, что ограничивает вложенность рекурсии 600-700 уровнями.
|
|||
5
H A D G E H O G s
25.01.21
✎
04:14
|
1.5 Кбайта стека тратится в последнем релизе на 1 уровень, что ограничивает вложенность рекурсии 600-700 уровнями.
|
|||
6
BaldKiwi
25.01.21
✎
04:29
|
(3) (5) Спасибо за информацию
|
|||
7
rphosts
25.01.21
✎
06:14
|
(4) на 64х-то?
|
|||
8
H A D G E H O G s
25.01.21
✎
10:53
|
(7) Размер стека везде 1 Мб. И увеличить его особо нельзя.
|
|||
9
Asmody
25.01.21
✎
11:02
|
Рекурсия - штука опасная. Для стековых машин вообще практически противопоказана. Может помочь оптимизация хвостовой рекурсии, но в 1С с этим никак.
|
|||
10
Кирпич
25.01.21
✎
11:22
|
(8) А что в 1с интерпретатор на системном стеке прям работает?
|
|||
11
H A D G E H O G s
25.01.21
✎
11:46
|
(10) Ну да.
Можно сделать рекурсию и смотреть размер стека на 100-200-300 уровне по точке останова через VmMap |
|||
12
H A D G E H O G s
25.01.21
✎
11:46
|
(10) А больше стека задать нельзя - потоки пользователей будут съедать память впустую, так как стек особо нигде не используется, кроме как рекурсии.
|
|||
13
Кирпич
25.01.21
✎
11:47
|
(11) попробовал. 1600 уровень прокатывает. 1700 валится.
|
|||
14
H A D G E H O G s
25.01.21
✎
11:47
|
(13) 8.3.18 ?
|
|||
15
Кирпич
25.01.21
✎
11:48
|
8.3.17
|
|||
16
H A D G E H O G s
25.01.21
✎
11:51
|
(15) В 8.3.18 все сломали :-)
попробовал на Дельфи - сломалось на 30000 уровне. |
|||
17
Кирпич
25.01.21
✎
12:03
|
(16) Ну это если параметры через стек не передавать. С параметрами то быстрее сдохнет.
А в 1с, похоже, параметры не через стек передаются. Чота добавляю параметры и ничего не меняется |
|||
18
H A D G E H O G s
25.01.21
✎
12:09
|
(17) Ссылки скорее всего передаются.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |