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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 26.09.2008, 14:47
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 1  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По умолчанию Оптимизация системы частиц.

Есть вот такой вот класс... ничего особенного, вроде, но, почему-то, если создавать 200+ частиц использование CPU со временем по-тихоньку увеличивается... Совсем не сильно, но, тем не менее... (количество задействованой памяти при этом не меняется). Может у кого-нибудь есть предположения, что бы это могло быть?
Вложения
Тип файла: rar Emitter.rar (2.4 Кб, 143 просмотров)
__________________
Hell is the possibility of sanity

Старый 26.09.2008, 16:35
L1965 вне форума Посмотреть профиль Отправить личное сообщение для L1965 Найти все сообщения от L1965
  № 2  
Ответить с цитированием
L1965
 
Аватар для L1965

Регистрация: Mar 2008
Сообщений: 65
Код:
_scene.removeChild(a);
_scene.addChild(pt);
 arr.splice(i, 1, pt);
Я очень плохо знаю Flash, но не может ли быть ошибка здесь? Ведь в момент removeChild(a) на а существует ссылка в arr. Может, лучше не уничтожать частицу, а просто передвинуть ее в некое новое положение и изменить скорость и ускорение на начальные значения?

Старый 26.09.2008, 16:46
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 3  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
У меня не наблюдается прироста нагрузки на CPU, постоянно 60-70%, для 300 частиц.
Только fps не очень большой, ну это и понятно, BlurFilter все-таки.

Кстати, раз уж заметил, наверное
Код:
this.removeEventListener(Event.REMOVED_FROM_STAGE, handleRemoved);

Старый 26.09.2008, 17:48
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 4  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Тоже проверил - прироста CPU Usage нет. Хотя визуально со временем тормозить начинает сильнее.

Старый 26.09.2008, 19:19
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
@ L1965:
В принципе, вариант. Это немного другая анимация получится, но вобщем, тоже можно.

Хм... не знаю, может показалось, или что-то на фоне ему мешало... надо будет еще вечером попробывать.

Edit: Ого... поменял удаление-добавление на смену координат, почти в 2 раза меньше нагрузка стала... пасиб =)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 26.09.2008 в 19:36.
Старый 27.09.2008, 14:51
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 6  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Добавь

Код:
cacheAsBitmap = true;

Старый 27.09.2008, 17:33
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
О, пасиб. Хм... я думал, что шейп с битмап заливкой должен и так восприниматься как битмап... может тогда вообще Particle от Bitmap унаследовать...
Прикольно =) 2000 заблуреных частиц да еще и с прозрачностью рисуются вполне нормально при 30 ФПС (у меня CPU Usage даж за 50% не переходит). Чесно, даж не думал, что флеш такое может =)
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 27.09.2008 в 17:47.
Старый 29.09.2008, 01:37
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 8  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
А ещё можеш позаменять все
Код:
new Point(...)
На один единственный
Код:
private var tempPoint:Point
И его уже изменять.
так же вынести побольше чего в private.

А вообще forEach работает медленнее чем обычный

Код:
var i:int = 0;
var max:int = _array.length;

while (i < max)
{
     i++;
}


Последний раз редактировалось r_r_f_r; 29.09.2008 в 01:46.
Старый 29.09.2008, 16:46
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 9  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Чего-то мне по поводу forEach сомнительно... по идее не дложно так быть... но еще не проверял, проверю - скажу =)
По поводу новых поинтов - да, это я уже понял, что создать объект - дороже получается, чем свойства поменять =) так и сделал.
У меня там вроде паблики только методы... там нету пабликов свойств... (или, если имеются в виду свойства партикла, то их максимум на интернал можно поменять... но, не думаю, что будет разница) сорри, сейчас просто не могу проверить, чуть пожже. Но все равно спасибо =)
__________________
Hell is the possibility of sanity

Старый 30.09.2008, 01:14
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 10  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Про private я хотел сказать что в цикле var i:int = _array[i] - работает медленнее нежели объявить i вне цикла а изменять её в самом цикле, а самые часто используемые вынести вообще в область видимости класса.
(ведь минимум все с локальной областью видимости var'ы нужно потом габаджем удалять)

Проверил твои пересчёты просто в цикле без изменений свойств(перерисовки) работают быстрее на 70% чем forEach

Даёш 3к частиц без тормозов

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

Теги
optimization , particles
Опции темы
Опции просмотра

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

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


 


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


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