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