PDA

Просмотр полной версии : Оптимизация кода при высокой загрузке Cpu


Верас Ольга
06.10.2004, 15:14
Не посмотрят-ли уважаемые господа этот пример. Уж очень он процессор грузит. Просто по-черному.

Lorex
06.10.2004, 18:19
Ну ... функция sin грузит по черному...

есть такая штука как числовьіе рядьі....

они приближенно считают функции..

для sin x я его не помню.. заглянь в линейную алгебру вроде...
там должно бьіть кое что как бьі = 1+ 1/x + 1/x^2 + 1/x^3 ....
вот ето и еть чиловой ряд.... только НЕ ДЛЯ СИНУСА Я ЕТО НАПИСАЛ... а просто как пример привел числового ряда.. Найди такой для sin(x).... возьми первьіх 5 членов и приближенно с практической точностю будешь иметь функцию Синус...

Определиш ее как функцию.. и вьізьівай ее, а не встроенную math.sin она же ТООЧЧЧНООО считает... и потому долго..



А ВОТ ИДЕЯ РЕАЛИЗАЦИИ ВОЛНЬІ КЛАССНАЯ... если сама придумала ее реализацию то поздравляю...!!!! СУПЕР ЗАДУМКА... главное просто подошла...(насколько можно ето просто)...

УДАЧИ... пиши!!!

Lorex
06.10.2004, 18:36
Сорри.. оно то может так.. но у тебя Синусьі всякие в подготовительном етапе... тоесть по ходу дела они не вьічисляются....
тогда... проверяй както производительность...
тут на форуме гдето проскакивала тема ... сколько секунд вьіполняется скрипт.. и меняй количество slices

Lorex
06.10.2004, 18:42
поищи по форуму такое...

точечньій синтаксис он медленнее слеш-синтаксика...

silin
06.10.2004, 22:34
немного повеселее будет, если вектор на битмап заменить (если требования к качеству картинки не очень высокие)

Lorex
07.10.2004, 11:28
Веселее будет если разделить фазу синуса и детализацию (твои slices).... тоесть картинка будет подроблена на мелкие куски но не каждая фаза показьвается... как бьі количество кадров уменьшить

И ЕЩЕ...

не на лету координатьі dy присваивать
у тебя в каждом кадре цикл на 50 раз... сделай предварительную подготовку (как сделала коефициентьі)

для каждой фазьі создай мувик phase0, phase1....
помести тогда в него мувики уже спозиционированье и замаскированньіе тоесть с воректньіми игреками

а в онентерфрейм простопоказуй ети мувики.... меняй _visible или как там... тоесть бельше загрузки уйдет на подготовку но при рендеринге будет спокойней....


PS чтоб втьікнуть мувик в мувик програмно... используй attachMovie


slices = 30;
phases=14;
amplituda=10;
PI=3.141526;
s = image._width / slices;

pnb=300;
for(var i=0;i<phases;i++){
_root.createEmptyMovieClip("phase"+i,i); //создаем контейнер phase0, phase1.... ето наши кадрьі анимации
for(var j=0;j<slices;j++,pnb++) eval("_root.phase"+i).attachMovie("image","slice"+j,pnb,{_x:10*i,_y:10*j})
}


логика ясна? ПОДГОТОВИТЕЛЬНЬЕ РАБОТЬІ!
Наклепать заготовок потом их покизьівать

Штрек
08.10.2004, 01:59
Пока код в кадре не выполнится,
переход на следующий -
никак -
отсюда и тормоза...
Измени концепцию всего этого дела...
Исх.не смотрел -
поэтому такой вот общий базар_вокзал...

Lorex
10.10.2004, 01:56
ну вот что я и описьівал...
может и не летает как говорил.. но зато можно отимизировать...

есть отдельно параметр фазьі.. тоесто количество картинок показуемьіх на одну волну... и отдельно ее четкость (slices)

код комментирован хорошо.. читай...
:-)

dekud
10.10.2004, 14:31
ну тут еще всегда можно поиграться с раздельным вычислением....

посмотри....