|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Dec 2009
Адрес: Питер
Сообщений: 45
|
Как отчистить память от уничтоженных объектов?
Столкнулся с проблемой - неиспользуемые объекты продолжают занимать память. Вроде все делаю - объект удаляю из дисплей листа, самого его зануливаю и все-равно память грузит...
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; public class Main extends Sprite { [Embed(source='assets/testSprite.swf', symbol='testSprite')] private static const embedResourse : Class; private var _testSprite : Sprite; private var _y : Number = 0; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point stage.addEventListener(MouseEvent.CLICK, onChangeSprite); } private function onChangeSprite( e : MouseEvent ) : void { if ( _testSprite ) { removeChild(_testSprite); _testSprite = null; } _testSprite = new embedResourse(); _testSprite.y = _y; addChild(_testSprite); if ( _y > 200 ) _y = 0; _y += 20; } } } P.S. В архиве FD проект примера. |
|
|||||
Регистрация: Dec 2009
Адрес: Питер
Сообщений: 45
|
В том то и дело, в профайлере запускаю gc, память немного падает, но незначительно.
Пример: Нет объектов на сцене - 5688кб Первая интерация - 10476кб 40ая интерация - 24948 После запуска gc - 21100кб (10000кб пропало) |
|
|||||
Регистрация: Apr 2010
Сообщений: 219
|
gc за раз может не почистить все сразу
|
|
|||||
Регистрация: Feb 2007
Сообщений: 563
|
gc тормоз, лучше строить проект так, чтобы по минимуму пришлось удалять объекты, иначе рискуете все забить и начнуться тормоза.
Но пока непонятно вот что - вы же удаляете объект и тут же назначаете новый этой же переменной, почему память должна очиститься? Я бы лучше удаленный ресурс делал через "load/unload" чем "removeChild". |
|
|||||
Регистрация: Oct 2006
Адрес: Москва
Сообщений: 889
|
ну блин запустите его еще раз если рано или поздно все удалить значит есть мысль пересмотреть архитектуру, а если что то останется то тут вопрос уже в том что значит что-то до конца не удаляется)
__________________
Коллекционирую чужие ActionScript Блоги |
|
|||||
Регистрация: Dec 2009
Адрес: Питер
Сообщений: 45
|
Он не удаляет впринципе, не рано, не поздно, вообще не удаляет.
Может быть пробелема во флеш плеере, версия там какая-нибудь без GC? |
|
|||||
Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
|
Вообще не такие уж и критичные цифры, что бы искать "проблемы во флеш плеере".
|
|
|||||
Регистрация: Dec 2009
Адрес: Питер
Сообщений: 45
|
Вообще можно и до 1Гб нагрузить, все-рано ничего не чистится. В дисплей листе всего один объект, а 1Гб памяти занят
|
Часовой пояс GMT +4, время: 00:50. |
|
« Предыдущая тема | Следующая тема » |
|
|