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

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

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

Регистрация: Jun 2013
Сообщений: 65
По умолчанию оптимизация. приложение забирает много оперативки

Добрый день!
Понимаю что вопрос очень обширный, но все же.
При старте приложения нужно подгрузить в main.swf ещё один other.swf, а потом в main.swf использовать классы из other.swf. Делаю это так

Код AS3:
ldr = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); 
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, swf_loading);
this.addEventListener("COMPLETED", loaded);
var urlReq:URLRequest = new URLRequest(JSSConnectionConst.URL_LOAD);
ldr.load(urlReq);
other.swf по размеру 22 МБ, и во время загрузки размер пользовательской оперативки возрастает почти до 2 Гб.
Подскажите, пожалуйста, какие приемы по оптимизации и что проверить в коде нужно чтоб исправить этот значительный недостаток?

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Попробуйте сделать trace внутри конструкторов документ-классов в main.swf и в other.swf. Есть вероятность, что other.swf пытается инстанцировать класс с именем Main (или еще какой-то класс) что приводит к повторной загрузке other.swf и тд. что приводит к своего рода рекурсии и забиванию памяти.
Если дело не в этом, то Вам придется считать создаваемые объекты и искать утечку через Adobe Scout (для этого нужно скомпилировать все swf-файлы с телеметрией). Кстати через тот же Scout Вы сможете отследить рекурсивную загрузку если она все таки происходит.
__________________
...вселенская грусть

Старый 27.10.2014, 18:05
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
gloomyBrain по поводу утечки, действительно бывают такие места, на которые не подумаешь. У нас в одной игре в определнный момент дико росла память, но там было такое место, что не отличается от других. Начали смотреть в сторону эффектов, т.к. в этот момент на элемент накладывался средний Blur. Убираем - оп ля, память все равно растет, но на 10% меньше. Дальше идеи иссякли. Один из коллег предложил вообще удалить граф элемент на который клали блюр, - но я то понимал, что это не причем, но все равно сделал для руководителя, - и о чудо, память не растет...
Оказалось, что этот элемент размером 200x200 px состоит где то из 1000 кусков ( мы использовали вектор, а наш граф дизайнер видимо слабо понимал портирование из AI для игр) и соответсвенно любая миниммальная нагрузка на него чуть ли не подвешивало приложение. Перевели в растр - успокоились...
__________________
Марк Tween

Старый 30.10.2014, 21:01
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
"Яркой иллюстрацией необходимости такой верификации служит байка, рассказанная мне коллегами об одном из предыдущих проектов. На карте был участок, застроенный не разрушаемыми домиками. Как только камера обращала свой взор на этот участок, то FPS сразу же дико падал. После изучения проблемы выяснилось, что внутри одного из домиков стояла ванна, в которой плавала маленькая «пластиковая» уточка. Все это выглядело бы забавной шалостью художников, если бы не то обстоятельство, что модель уточки содержала около миллиона полигонов." via
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 31.10.2014, 00:14
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 5  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
dimarik вот так вот бывает да. А виноваты всегда кодеры)) фигли
__________________
Марк Tween

Старый 31.10.2014, 17:54
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
У автора топика там в подгружаемом SWF часом не графика?
__________________
Поймай яблоко 2!

Старый 31.10.2014, 21:34
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Ну если 23 мб - то явно не код ))))))))))))))))))
__________________
Марк Tween

Старый 31.10.2014, 21:45
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 8  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Ок. Допустим там атласы 2048х2048, которые в png формате весят примерно по 2 Мб каждый. Значит swf содержит гипотетически 11 атласов размером 2048х2048 (фигассе 0о).

Следовательно мы имеем: 2048 х 2048 х 11 х 4 = 176 Мб.

Это никак не 2 гига.
__________________
Поймай яблоко 2!

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Цитата:
Сообщение от Zebestov Посмотреть сообщение

Следовательно мы имеем: 2048 х 2048 х 11 х 4 = 176 Мб.

Это никак не 2 гига.
Вы имеете не правильно...

(2048х4) х (2048х4) = 64 МБ х 11 = 704 МБ

Но, да... Это никак не 2 гига.

Старый 01.11.2014, 15:31
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 10  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от Партизан Посмотреть сообщение
Вы имеете не правильно
Все правильно. Ошибка у тебя.
__________________
Поймай яблоко 2!

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

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

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


 


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


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