![]() |
оценка производительности кода
сейчас пишу приложение, визуал которого должен обновляться как можно чаще. поэтому в установках экспорта у меня 120 fps, а таймер вызывается через setInterval(timer, 1) (настолько часто, насколько возможно). естественно всё это серьёзно загружает процессор, который всегда работает на 100%.
посему возникает несколько вопросов: 1) как оценить, сколько процессорного времени сжирает отрисовка, а сколько выполнение кода? 2) как узнать, сколько времени тратится на каждую функцию? 3) как узнать структуру всего процессорного времени? (в идеале отчет вроде стандартного "report size") 4) если нет прямых ответов на эти вопросы, как вы решаете проблемы анализа производительности кода? 5) есть ли какие-то классы/наработки по этой теме? я представляю только ответ на вопрос 2) для отдельно взятой функции - в начале и в конце замерить getTimer() и вывести разницу. но это достаточно точечное решение, мне бы хотелось комплексного. спасибо. |
1) -
2) t = getTimer(); var i = 1000; while(i--) func(); trace(getTimer()-t); а что ещё? 3) - 4) есть статьи по оптимизации. кроме оптимизации кода почти никак. можно отдельные ф-ции проверять через 2) смотреть что быстрее. 5) статьи. ссылок не помню. попробую порыться. даже тут как-то была ссыль. |
2) на отдельную функцию - всё понятно. а если у меня 20-30 классов и у каждого по 3-10 методов? тут нужно в комплексе решать задачу.
|
какую задачу?
сделай то же самое для каждого метода... |
честно говоря, я с трудом понимаю зачем такой большой фпс. можно просветить?
|
2 KidsKilla:
задача - комплексно (всё сразу вместе) оценить, что жрет процессорное время 2 iNils: 1) синхронизация бита в музыке с происходящим на экране 2) чем больше fps, тем чаще вызывается мой таймер через setInterval 3) чем чаще, тем точнее попадание визуала в звук |
2) бред
3) бред |
По поводу звука (не совсем в тему, но может чем то пригодится). Была статья на потрошителе про пульт.
|
|
2 iNils:
про пульт: спасибо, почитаю :) 2 all: так что насчет оценки производительности? |
Поищи в инете вот такую библиотеку - ASProf-1.0.mxp может поможет
Создает отчет по затрате времени на каждую опписанную функцию! |
Самому интересно стало. Еще не тестил, но нашел здесь.
|
2 KidsKilla:
для вас, уважаемый коллега, следующий код: Код:
class test.Test { при fps=120 выдает av=10.74 зависимость хоть и не прямая, но ощутимая |
А на fps 30 или 60?
Если читал ссылку на топик, то там описывался забавный момент. Что при фпс в районе 13 setInterval вызывался реже чем при при 9 |
при fps=30 av=10.22
при fps=60 av=10.24 похоже, при увеличении fps разница становится не настолько заметной |
1) слишком наворочено, для простейших операций.
2) setInterval не точен. очень не точен. пределы разные. часто +- 3-5% 3) 100 смени на 10 000 и 4) протесть неск-ко раз. скорее всего проц задумывался сперва. не верю, что есть связь фпс и setInterval. 1) + 2) дают порой такие идиотские рез-ты. пс, кстати, не забывай про неточности вычислений проца. фпс на это порой очень сильнок действие даёт. как итог для более точных вычислений рекомеддуются фпс 21 и 31 |
1) поменял на менее навороченный код
2) но не 2,5 раза 3) сменил на 1000 4) тестил несколько раз fps=4 av=24.999 fps=120 av=10.108 можешь проверить своими методами |
2 Varan LSD:
посмотрел. скачал. то, что нужно, спасибо :) |
фидимо сама цифра в 4 фпс ужасна. заметь, 30, 60, 120 нет разницы.
это к моему пс |
| Часовой пояс GMT +4, время: 18:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.