PDA

Просмотр полной версии : Что реально тормозит swf-ку?


metton
10.11.2002, 03:52
Вопрос таокй возник после того, как в одном из моих экспериментов для практике мувик стал нереально тормозить а иногда даже и виснуть...
Так вот - хотелось бы узнать что сильно тормозит swf?

Есть некоторые предположения
1) Циклы ( кстати, как по скорости for и while в сравнении? ), рекурсия - что из них быстрее?
2) continue, break в циклах (???)
3) не убыстряют ли работу клипа удаление всех переменных, которые уже не успользуются?

Прошу прокомментировать предположения и если ещё что-то реально тормозит сказать, что именно и какие этому есть альтернативы...

Спасибо за внимание ;)

DeliMIter
10.11.2002, 14:35
Разница между циклами - в том, где у них проверяется условие, оба организованы обычными условными переходами. Если у тебя обрабатывается много всего, то они могут тормозить не по детски. Проверить можно элементарно - гетТаймер до твоего критичного кода, гетТаймер после, разницу - на трейс. Вполне возможно, что тормозит у тебя не сам цикл, а отрисовка результатов его работы (напр изменить координаты тысячи клипов, цикл займет 15мс, и еще сотня - перерисовка). С помощью трейса можно оптимизировать код, выбирая быстрые (но не всегда более простые) способы адресации, команды и тэдэ.
Рекурсия тормозит однозначно. Одна большая функция с циклом будет работать быстрее, чем десяток маленьких, выполняющих те же действия.

Basil
12.11.2002, 20:08
На своем опыте могу сказать, что сильно тормозит hitTest, при большом количестве проверок. Когда делал игру "Tetris", сначало решил, что падающая фигура будет проверять контакт с каждой уже упавшей фигурой. Но чем больше фигур находилось на экране, тем больше начинало тормозить. Пришлось полностью переписать код и сократить проверку hitTest до четырех. Тормозов, как и небывало.

Joey N.
15.11.2002, 13:26
ЦИКЛЫ!!!!!! (тормозят)
Вот сделал поисковушку по заранее заготовленным значениям. Она циклом проверяет массив, причем массивы ключевых слов являются составной частью общего массива значений. Т.е. прогонку массивов осуществляет цикл в цикле. Ну поставил я случайно лишний нолик на итераторе... ... ... ... ... ... ... ... так и не дождался - пришлось Ctrl+Alt+Del давить ;)

DeliMIter
15.11.2002, 13:34
Чаще всего тормозят, как видно из вышеприведенного примера, программисты :D :D :D

Joey N.
16.11.2002, 18:22
Чаще всего тормозят, как видно из вышеприведенного примера, программисты
Печально, но правда...

Бамбук
16.11.2002, 20:51
Также неслабую постоянную загрузку оказывают события enterFrame.
Работа со строками тоже может очень сильно затормозить работу скрипта.