|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Juggler на что уходит память?
Приветствую, тестируя анимации, обнаружил что куда-то постоянно утекает память, создавая неприятные фризы после сборки мусора. вот демо пример вызывающий проблему
public function JugglerLeak() { for (var i:int = 0; i < 200; i++) { var quad:Quad = new Quad(30, 30, 0xffffff * Math.random()); addChild(quad); moveToRand(quad); } } private function moveToRand(quad:Quad) { Starling.juggler.tween(quad,100,{ x:Math.random()*1000, y:Math.random() * 670 }) } Scout в allocation выдает расход памяти на уровне 15 кб в секунду, что не соответствует действительности. Я в принципе не могу представить куда она может уходить, если сами твины берутся из пула, а потом лишь обновляются, диспетчеризация событий идет только в самом конце .отсюда вопрос, что я упускаю из вида, и как этого избежать? http://prntscr.com/amg22v |
|
|||||
Это не твоя тема на старлинговском форуме с аналогичным вопросом случайно?
Какая версия старлинга, кстати? У меня не наблюдается никаких расходов/перерасходов памяти джаглером
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Да, соя тема) Старлинг 1.7 плеер 20.0, проблема наблюдается и в релизной и дебажной версии. у тебя код выше выполняется без перерасходов? какая версия у тебя?
|
|
|||||
Проверил. С перерасходами, но дело совсем не в джаглере. Я заменил его на TweenMax и увидел ту же картину. Сдается мне старлинг просто накапливает кучу каких-то данных при отрисовке, которые потом собираются сборщиком мусора. А может и сама ВМ накапливает, особо углублено ковыряться было в лом) В общем-то, сборщик собирает все, и потребление возвращается к тому значению, с которого начиналось. Напрягает только момент сборки мусора. Но это ведь совершенно не оптимизированный код. Такие вещи лучше всего делать через QuadBatch, (или MeshBatch в новом старлинге) и отрисовывать все эти штуки одним скопом
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
я тоже сразу подумал что дело в рендере, но при выключенном visible он не происходит. потом попробовал удаление со сцены, чтобы исключить пересчет матриц, но результат тот же. только что проверил, проблему создают даже пустые твинеры, поэтому quadBatch тут врядли чем то поможет) Просто не пойму на что она может выделяться. есть объекты, у которых каждый кадр должно меняться свойство. хендлеров update complete нет, событий тоже. получается анимация только на cpu
Последний раз редактировалось faraday; 01.04.2016 в 12:45. |
|
|||||
Цитата:
Цитата:
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Цитата:
А что можно с этим перерасходом сделать? у меня на карте много подвижных объектов, а каждые 10 сек фризится вся карта. если я создаю пустые твины, откуда там взяться enterFrame? Двигая по enterFrame никаких проблем, и потребление памяти на нуле |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
Ни у кого никаких идей не появилось случайно куда расходуется память в простом твинере из 4 строк? при том что juggler их берет из пула
|
|
|||||
есть у меня проект на старом старлинге 1.х, никаких там нет фризов с твиинами, хотя сотни одновременно объектов твинятся
сейчас соберу тестовый прож Добавлено через 25 минут не заметно фризов, сборщик над чем то регулярно работает flashdevelop, fp22, starling 1.7 фризы есть на 5к объектов а что у вас за процессор? |
|
|||||
Регистрация: Apr 2009
Сообщений: 409
|
на этой демо сцене фризы не заметны да, но память очень быстро куда-то расходуется, не понятно куда. сборщик каждые 15 сек сбрасывает
|
Часовой пояс GMT +4, время: 15:44. |
|
« Предыдущая тема | Следующая тема » |
|
|