![]() |
DarkLight, ты не путаешь глубину рекурсии с настройками таймаута в CS4?
|
aksios, программу создаю, там реализовать рекурсией гораздо проще, чем циклами (как по мне, может и ошибаюсь). И вообще чем так плоха рекурсия?
Вот к примеру. Мне нужно обработать переменную в цикле относительно нескольких величин, т.е. по логике я должен создать цикл в цикле (а то и несколько ступеней вложенности) - флеш при этом однозначно повесится (возможно не на долго, но факт перегрузки есть), а в случае с использованием рекурсии все это решается более спокойно (хотя по времени может и дольше, но без подвисания компа). Вот и возникает вопрос: когда лучше рекурсия, а когда цикл? Кстати, в моем примере достаточно сложная система обработки переменных, поэтому выбрал рекурсию (хотя наверное можно было бы попробовать и циклом). Кстати о ресурсах - я частично уже написал, а если говорить о вышеуказанном коде, так там хоть 5000 итераций - субъективно будет практически без задержек. |
Цитата:
|
Лучше тогда, когда это красивее выглядит, и более важно - быстрее бегает.
Кстати, а почему при рекурсии компьютер повеситься, а при циклах будет бегать быстрее? Цитата:
Хотя, циклы пожалуй выйграют, ибо область поиска переменных у них будет более ближняя (они будут локальны) и будут быстрее обращаться, чем к функции, которая не локальна. Хотя, можно сделать на неё ссылку, но не факт, что поможет. Надо на досуге проверить) |
Psycho Tiger и уважаемая публика...
Предлагаю 2 варианта кода, по сути делающих одно и то же: вывод мувика из библиотеки на основную сцену. В библиотеке мувик (просто квадрат) с Linkage "quad". Код с применением цикла: Код AS1/AS2:
Код с применением рекурсии (и задержки для обхода лимита ее глубину) Код AS1/AS2:
Исходя из вышесказанного остановлюсь все же на рекурсии (т.к. не думаю что пользователь будет рад полному подвисанию системы, даже в ущерб скорости). Если у кого будут другие мнения и/или доводы - с удовольствием выслушаю. |
С тем же успехом можно было прогонять пачками циклы с интервалом, не забивая память рекурсиями.
|
Цитата:
Upd. Перепроверил - при рекурсии функция пересоздается (по крайней мере таковы результаты трэйса), так что не понятно чем тогда будет забиваться память. Если можно - поподробней по данной теме. |
Память забивается стеком вызовов и локальными переменными, из значениями и областями видимости, очевидно же.
|
Всем спасибо за внимание, все понятно.
Upd. Вот стало интересно с Flasm-ом немного поиграться, интересно ж... Наваял такой незатейливый код: Код AS1/AS2:
Код:
C:\Flasm>flasm -d rec.swf > rec.flmКод:
movie 'rec.swf' compressed // flash 9, total frames: 1, frame rate: 12 fps, 550x400 pxЗЫ. и я так понимаю, что под ас3 прога работать не будет? |
Цитата:
|
| Часовой пояс GMT +4, время: 17:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.