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

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

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

Регистрация: Jun 2014
Сообщений: 558
По умолчанию Проблемы с производительностью

Добрый день, вопрос по оптимизации игрушки. Где что можно посмотреть Adobe Flash Professional CC 2014 что может влиять на производительность?Просто хочу изначально убедиться, что это я слишком много хочу, чем флеш может дать. Изначально ничего не использовал (сглаживание и т.п.), т.к не было необходимости, вдруг что-то по умолчания включено? Просто всего около 50 объектов, половина из них движется и проверяется обычным hittest, вторая половина просто изменяет scaleX, scaleY и alpha. Количество объектов динамически изменяется, обычно только первые 25 и всё хорошо, а когда добавляются остальные 25, то начинаются тормоза(чем лиже к 50, тем сильнее). Все объекты - части различных массивов, код приводить нет смысла, так как больше 600 строк. В дальнейшем в планах количество объектов увеличиться до 75, но проблемы уже с производительностью есть.

Добавлено через 3 минуты
Утечки памяти нет, проц иногда при максимальном количестве объектов прогружается до 85%. Рукурсивные функции не использовал

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

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Проверьте через scout. Наверняка станет понятно, в чём проблема.

Старый 08.11.2014, 01:19
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 3  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
слышал об этой проге, хорошо, отпишусь что выдаст

Старый 08.11.2014, 02:49
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 4  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
я бы посоветовал MonsterDebugger +
1. используйте cacheAsBitmap = true;
2. кеширование анимации
3. если графика статичная - растрировайте её ( снимайте битмапу, очищайте сцену от дисплейобджектов, вместо них вставляйте битмапу )
4. если элементы повторяются используйте синглтоны - т.е. графика лежит в 1 битмапдате, а экземпляры получают прямую ссылку на неё.

для начала хватит
__________________
return this...

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

Регистрация: Jun 2014
Сообщений: 558
AlexCooper по 4-му пункту поподробней, у меня много повторяющихся элементов, пихаю их в массив, т.к. нужно сохранять ихние параметры, размеры, скорость, поворот, т.п.+свои

cacheAsBitmap - можно применять к массивам?

ещё cacheAsBitmap нужно присваивать true к объекту до его выведения на экран(задать координаты и т.п.) или после или без разницы?

вообще тормоза начинаются когда создаётся > 25 объектов, у которых одновременно изменяется альфа и размер

Добавлено через 2 часа 42 минуты
У меня все объкты динамичны, с каждым что-то да происходит в каждом кадре

Добавлено через 12 часов 30 минут
еще померял фпс в приложение, технически даж при максимальной нагрузке остаётся 24 кадра(задано 40), но ведь расчёты флеш делает в каждом кадре, соответственно с изменением количество кадров приводит к замедлению расчётов и все объекты движутся медленнее. Тогда почему в играх нет разницы между 50 и 80 фпс? Получается как-то связывают производительность ЦП и видюхи, при этом берут в расчёт, что игра не должна ускорятся или замедляться в зависимости от производительности проца?


Последний раз редактировалось neonoviiwolf; 08.11.2014 в 05:57.
Старый 08.11.2014, 22:19
VisualDima вне форума Посмотреть профиль Отправить личное сообщение для VisualDima Найти все сообщения от VisualDima
  № 6  
Ответить с цитированием
VisualDima
 
Аватар для VisualDima

Регистрация: May 2009
Сообщений: 26
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
еще померял фпс в приложение, технически даж при максимальной нагрузке остаётся 24 кадра(задано 40), но ведь расчёты флеш делает в каждом кадре, соответственно с изменением количество кадров приводит к замедлению расчётов и все объекты движутся медленнее. Тогда почему в играх нет разницы между 50 и 80 фпс? Получается как-то связывают производительность ЦП и видюхи, при этом берут в расчёт, что игра не должна ускорятся или замедляться в зависимости от производительности проца?
В играх надо ориентироваться не на фпс. В каждом кадре объекты двигают не на фиксированное расстояние, а замеряют время, которое прошло с последнего кадра и умножают полученное время на скорость.
Например, тебе надо, чтобы объект проходил по горизонтали 100 пикселей за 1 секунду. Допустим, тебе известно сколько времени прошло с прошлого кадра и оно содержится в переменной deltaT, тогда, чтобы сдвинуть объект нужно написать так:
Код AS3:
MyObject.x += deltaT * 100;
Таким образом при любом фпс объекты будут двигаться с одной скоростью. Просто при высоком фпс движения будут плавными, а при низком "дерганными".

Старый 09.11.2014, 02:54
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 7  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
С чего начать

Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
по 4-му пункту поподробней, у меня много повторяющихся элементов, пихаю их в массив, т.к. нужно сохранять ихние параметры, размеры, скорость, поворот, т.п.+свои
Blitting and caching movie clips in Flash

Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
cacheAsBitmap - можно применять к массивам?
к массивам? Каким Вы представляете компилятор будет преобразовывать массив в Битмапу?

+ Используйте плотные массивы, они быстрее
Код AS3:
var user1:UserUI = new UserUI();
var user2:UserUI = new UserUI();
 
var users:Vector.<UserUI> = new Vector.<UserUI>;
users.push( user1 );
users.push( user2 );
Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
ещё cacheAsBitmap нужно присваивать true к объекту до его выведения на экран(задать координаты и т.п.) или после или без разницы?
Альтернатива “Cache as bitmap” – разгружаем процессор
Картинки обгоняют вектор!

Цитата:
Сообщение от neonoviiwolf Посмотреть сообщение
еще померял фпс в приложение, технически даж при максимальной нагрузке остаётся 24 кадра(задано 40),
Я всегда использую framerate 60 (забудьте вообще о кадрах, у Вас есть только время use TweenLite)

закуска
Кеширование MovieClip
Из вектора в растр
Почему cacheAsBitmap плох
Решение проблемы производительности во Flash
__________________
return this...

Старый 09.11.2014, 14:16
neonoviiwolf вне форума Посмотреть профиль Отправить личное сообщение для neonoviiwolf Найти все сообщения от neonoviiwolf
  № 8  
Ответить с цитированием
neonoviiwolf

Регистрация: Jun 2014
Сообщений: 558
AlexCooper спасибо, буду осваивать

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

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

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


 


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


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