|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2013
Сообщений: 65
|
оптимизация. приложение забирает много оперативки
Добрый день!
Понимаю что вопрос очень обширный, но все же. При старте приложения нужно подгрузить в main.swf ещё один other.swf, а потом в main.swf использовать классы из other.swf. Делаю это так 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); Подскажите, пожалуйста, какие приемы по оптимизации и что проверить в коде нужно чтоб исправить этот значительный недостаток? |
|
|||||
Попробуйте сделать trace внутри конструкторов документ-классов в main.swf и в other.swf. Есть вероятность, что other.swf пытается инстанцировать класс с именем Main (или еще какой-то класс) что приводит к повторной загрузке other.swf и тд. что приводит к своего рода рекурсии и забиванию памяти.
Если дело не в этом, то Вам придется считать создаваемые объекты и искать утечку через Adobe Scout (для этого нужно скомпилировать все swf-файлы с телеметрией). Кстати через тот же Scout Вы сможете отследить рекурсивную загрузку если она все таки происходит.
__________________
...вселенская грусть |
|
|||||
[+4 06.05.14]
|
gloomyBrain по поводу утечки, действительно бывают такие места, на которые не подумаешь. У нас в одной игре в определнный момент дико росла память, но там было такое место, что не отличается от других. Начали смотреть в сторону эффектов, т.к. в этот момент на элемент накладывался средний Blur. Убираем - оп ля, память все равно растет, но на 10% меньше. Дальше идеи иссякли. Один из коллег предложил вообще удалить граф элемент на который клали блюр, - но я то понимал, что это не причем, но все равно сделал для руководителя, - и о чудо, память не растет...
Оказалось, что этот элемент размером 200x200 px состоит где то из 1000 кусков ( мы использовали вектор, а наш граф дизайнер видимо слабо понимал портирование из AI для игр) и соответсвенно любая миниммальная нагрузка на него чуть ли не подвешивало приложение. Перевели в растр - успокоились...
__________________
Марк Tween |
|
|||||
.
|
"Яркой иллюстрацией необходимости такой верификации служит байка, рассказанная мне коллегами об одном из предыдущих проектов. На карте был участок, застроенный не разрушаемыми домиками. Как только камера обращала свой взор на этот участок, то FPS сразу же дико падал. После изучения проблемы выяснилось, что внутри одного из домиков стояла ванна, в которой плавала маленькая «пластиковая» уточка. Все это выглядело бы забавной шалостью художников, если бы не то обстоятельство, что модель уточки содержала около миллиона полигонов." via
|
|
|||||
Lorem ipsum
|
У автора топика там в подгружаемом SWF часом не графика?
__________________
Поймай яблоко 2! |
|
|||||
Lorem ipsum
|
Ок. Допустим там атласы 2048х2048, которые в png формате весят примерно по 2 Мб каждый. Значит swf содержит гипотетически 11 атласов размером 2048х2048 (фигассе 0о).
Следовательно мы имеем: 2048 х 2048 х 11 х 4 = 176 Мб. Это никак не 2 гига.
__________________
Поймай яблоко 2! |
|
|||||
Цитата:
(2048х4) х (2048х4) = 64 МБ х 11 = 704 МБ Но, да... Это никак не 2 гига. |
|
|||||
Lorem ipsum
|
__________________
Поймай яблоко 2! |
Часовой пояс GMT +4, время: 13:17. |
|
« Предыдущая тема | Следующая тема » |
|
|