PDA

Просмотр полной версии : Поиск слабых мест в коде. getTimer.


Alex T
12.06.2006, 12:43
Написал класс, вроде все нормально, но стал замечать, что изрядно подтормаживает, решил оптимизировать, но сначала надо выяснить из-за чего торможения.
Вопрос: как это сделать? расставлять везде getTimer или внимательно проанализировать код? посоветуйте, пожалуйста?

Madasan
12.06.2006, 12:47
Внимательно анализировать код, для точности анализа, можно расставлять getTimer() :)

aksios
12.06.2006, 14:38
getTimer самая тормозная команда, надо делать как в хелпе через setInterval, причем интервал делать большим. Лучше вообще обойти его использование.

iNils
12.06.2006, 14:43
getTimer самая тормозная команда, надо делать как в хелпе через setInterval, причем интервал делать большим. Лучше вообще обойти его использование.
Я тебя не понял :)

aksios
12.06.2006, 14:58
Я тебя не понял :)
В общем, где то я читал, что getTimer по собственной инициативе постоянно обращается к процу с запросами времени - количество запросов в принципе ограничено только производительностью системы.

iNils
12.06.2006, 15:01
В общем, где то я читал, что getTimer по собственной инициативе постоянно обращается к процу с запросами времени - количество запросов в принципе ограничено только производительностью системы.
Ты не ошибся? getTimer - функция которая возвращает количество миллисекунд, прошедших с момента старта муви-клипа. Ее вызывают ручками.

aksios
12.06.2006, 15:12
Ты не ошибся? getTimer - функция которая возвращает количество миллисекунд, прошедших с момента старта муви-клипа. Ее вызывают ручками.
Так вот, я читал, (сам в ассемблере не проверял) что при вызове getTimer он один раз выдает значение, а сам процесс запроса системного таймера на этом не завершается и повторяется без всяких запросов. Ну типа как создать мувиклип и в свойствах сделать его не видимым на сцене - если ему не прописать stop() то он будет кушать ресурсы системы. По крайней мере, это подтверждается тем, что использование getTimer действительно приводит к "аномальному" увеличению загрузки проца.

iNils
12.06.2006, 15:20
Сначала делаем так
for (var i = 0; i < 100000; i++) {
var t = 1;
}
trace (getTimer ());
Теперь так
for (var i = 0; i < 100000; i++) {
var t = getTimer ();
}
trace (getTimer ());
Как тебе такая проверка?

aksios
12.06.2006, 15:37
Да может и баян.

Iv
12.06.2006, 19:30
Речь скорее всего шла о setInterval и вопрос поднял JavaScript программер.

Аффтар топика, ты бы выдал код класса, были бы совершенно конкретные советы.
Поскольку все косяки, отрицательно влияющие на производительность, описать ни в одной книге нельзя.