Просмотр полной версии : Оптимизация кода при высокой загрузке Cpu
Верас Ольга
06.10.2004, 15:14
Не посмотрят-ли уважаемые господа этот пример. Уж очень он процессор грузит. Просто по-черному.
Ну ... функция sin грузит по черному...
есть такая штука как числовьіе рядьі....
они приближенно считают функции..
для sin x я его не помню.. заглянь в линейную алгебру вроде...
там должно бьіть кое что как бьі = 1+ 1/x + 1/x^2 + 1/x^3 ....
вот ето и еть чиловой ряд.... только НЕ ДЛЯ СИНУСА Я ЕТО НАПИСАЛ... а просто как пример привел числового ряда.. Найди такой для sin(x).... возьми первьіх 5 членов и приближенно с практической точностю будешь иметь функцию Синус...
Определиш ее как функцию.. и вьізьівай ее, а не встроенную math.sin она же ТООЧЧЧНООО считает... и потому долго..
А ВОТ ИДЕЯ РЕАЛИЗАЦИИ ВОЛНЬІ КЛАССНАЯ... если сама придумала ее реализацию то поздравляю...!!!! СУПЕР ЗАДУМКА... главное просто подошла...(насколько можно ето просто)...
УДАЧИ... пиши!!!
Сорри.. оно то может так.. но у тебя Синусьі всякие в подготовительном етапе... тоесть по ходу дела они не вьічисляются....
тогда... проверяй както производительность...
тут на форуме гдето проскакивала тема ... сколько секунд вьіполняется скрипт.. и меняй количество slices
поищи по форуму такое...
точечньій синтаксис он медленнее слеш-синтаксика...
немного повеселее будет, если вектор на битмап заменить (если требования к качеству картинки не очень высокие)
Веселее будет если разделить фазу синуса и детализацию (твои 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})
}
логика ясна? ПОДГОТОВИТЕЛЬНЬЕ РАБОТЬІ!
Наклепать заготовок потом их покизьівать
Пока код в кадре не выполнится,
переход на следующий -
никак -
отсюда и тормоза...
Измени концепцию всего этого дела...
Исх.не смотрел -
поэтому такой вот общий базар_вокзал...
ну вот что я и описьівал...
может и не летает как говорил.. но зато можно отимизировать...
есть отдельно параметр фазьі.. тоесто количество картинок показуемьіх на одну волну... и отдельно ее четкость (slices)
код комментирован хорошо.. читай...
:-)
ну тут еще всегда можно поиграться с раздельным вычислением....
посмотри....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.