![]() |
Что реально тормозит swf-ку?
Вопрос таокй возник после того, как в одном из моих экспериментов для практике мувик стал нереально тормозить а иногда даже и виснуть...
Так вот - хотелось бы узнать что сильно тормозит swf? Есть некоторые предположения 1) Циклы ( кстати, как по скорости for и while в сравнении? ), рекурсия - что из них быстрее? 2) continue, break в циклах (???) 3) не убыстряют ли работу клипа удаление всех переменных, которые уже не успользуются? Прошу прокомментировать предположения и если ещё что-то реально тормозит сказать, что именно и какие этому есть альтернативы... Спасибо за внимание ;) |
Разница между циклами - в том, где у них проверяется условие, оба организованы обычными условными переходами. Если у тебя обрабатывается много всего, то они могут тормозить не по детски. Проверить можно элементарно - гетТаймер до твоего критичного кода, гетТаймер после, разницу - на трейс. Вполне возможно, что тормозит у тебя не сам цикл, а отрисовка результатов его работы (напр изменить координаты тысячи клипов, цикл займет 15мс, и еще сотня - перерисовка). С помощью трейса можно оптимизировать код, выбирая быстрые (но не всегда более простые) способы адресации, команды и тэдэ.
Рекурсия тормозит однозначно. Одна большая функция с циклом будет работать быстрее, чем десяток маленьких, выполняющих те же действия. |
На своем опыте могу сказать, что сильно тормозит hitTest, при большом количестве проверок. Когда делал игру "Tetris", сначало решил, что падающая фигура будет проверять контакт с каждой уже упавшей фигурой. Но чем больше фигур находилось на экране, тем больше начинало тормозить. Пришлось полностью переписать код и сократить проверку hitTest до четырех. Тормозов, как и небывало.
|
ЦИКЛЫ!!!!!! (тормозят)
Вот сделал поисковушку по заранее заготовленным значениям. Она циклом проверяет массив, причем массивы ключевых слов являются составной частью общего массива значений. Т.е. прогонку массивов осуществляет цикл в цикле. Ну поставил я случайно лишний нолик на итераторе... ... ... ... ... ... ... ... так и не дождался - пришлось Ctrl+Alt+Del давить ;) |
Чаще всего тормозят, как видно из вышеприведенного примера, программисты :D :D :D
|
Цитата:
|
Дальше больше...
Также неслабую постоянную загрузку оказывают события enterFrame.
Работа со строками тоже может очень сильно затормозить работу скрипта. |
| Часовой пояс GMT +4, время: 18:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.