Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.02.2009, 11:15
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 1  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
По умолчанию вопрос по оптимизации обработки рассчетов движения n объектов

Как вы думаете, что "быстрее":
- вешать на каждый объект (из n объектов) свой обработчик onEnterFrame;
- вешать обработчик onEnterFrame на какой-то внешний клип и в нем проходить циклом по всем объектам, которых надо "двинуть"?

Пример: 1000 снежинок.

Со своих наблюдений я сделал вывод, что вешать свой обработчик на каждый объект эффективней, в условиях, когда процессор перестает справляться с обсчетами из-за большого количества объектов - движение менее дискретное. Хотя, казалось бы все должно быть наоборот, т.к. один обработчик, совершающий n наборов операций, по логике должен быть шустрее n обработчиков, совершающих 1 операцию, т.к. не надо тратить процессорное время на перепрыгивание по функциям-обработчикам.

А вы как считаете? Или, может быть, что наблюдали?
__________________
скриптограф

Старый 16.02.2009, 12:09
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 2  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
А обход этих 1000 снежинок у тебя каким образом проиходит в массиве? Вооще тут от реализации всего кода на разных участках, зависит в каком из случаев будет производительность выше.

Старый 16.02.2009, 12:57
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 3  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от qazwsx Посмотреть сообщение
А обход этих 1000 снежинок у тебя каким образом проиходит в массиве? Вооще тут от реализации всего кода на разных участках, зависит в каком из случаев будет производительность выше.
снежинки именованы snowflake0, snoqflake1...snowflakeN. У каждой из них есть snowflake.speedX и snowflake.speedY, обход через for.
__________________
скриптограф

Старый 16.02.2009, 16:27
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 4  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Попробуй в цикле обходить сразу 5 или 10 снежинок 1 не одну. И еще если я правильно понимаю speedX speedY это геттеры класа? Тогда что происходит при присваивании им значения?

Старый 16.02.2009, 17:16
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 5  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от qazwsx Посмотреть сообщение
Попробуй в цикле обходить сразу 5 или 10 снежинок 1 не одну. И еще если я правильно понимаю speedX speedY это геттеры класа? Тогда что происходит при присваивании им значения?
это не геттеры, это просто дельты, на которые смещается снежинка, т.е. они генерируются при создании снежинки и она с ними живет..))
snowflakeN._x += snowflake.speedX;
__________________
скриптограф

Старый 16.02.2009, 19:56
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 6  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
Цитата:
Как вы думаете, что "быстрее":
- вешать на каждый объект (из n объектов) свой обработчик onEnterFrame;
- вешать обработчик onEnterFrame на какой-то внешний клип и в нем проходить циклом по всем объектам, которых надо "двинуть"?
То есть получется лучше вариант 1, с учетом того что не на каждый обьект надо вешать, а на несколько? Просто такая же ситуация только кнупки и надо проверять их состояние..(

Старый 16.02.2009, 21:36
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 7  
Ответить с цитированием
qazwsx
Banned
[+5 15.02.09]
[++5 15.02.09]

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Состояние ненадо проверять. Кнопки сами должны оповещать слушателя о своем состоянии. А в случае orcpochta обход сразу нескольких обьектов за 1 итирацию цикла должен быть эфективней поидее

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:37.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.