![]() |
Как отчистить память от уничтоженных объектов?
Вложений: 1
Столкнулся с проблемой - неиспользуемые объекты продолжают занимать память. Вроде все делаю - объект удаляю из дисплей листа, самого его зануливаю и все-равно память грузит...
Код AS3:
P.S. В архиве FD проект примера. |
дело в том что вы не дожидаетесь вызова gc. чтобы проверить очистилась ли память от объектов или нет.
|
запустите профилирование и принудительно включите gc, увидите разницу
|
В том то и дело, в профайлере запускаю gc, память немного падает, но незначительно.
Пример: Нет объектов на сцене - 5688кб Первая интерация - 10476кб 40ая интерация - 24948 После запуска gc - 21100кб (10000кб пропало) |
gc за раз может не почистить все сразу
|
gc тормоз, лучше строить проект так, чтобы по минимуму пришлось удалять объекты, иначе рискуете все забить и начнуться тормоза.
Но пока непонятно вот что - вы же удаляете объект и тут же назначаете новый этой же переменной, почему память должна очиститься? Я бы лучше удаленный ресурс делал через "load/unload" чем "removeChild". |
ну блин запустите его еще раз если рано или поздно все удалить значит есть мысль пересмотреть архитектуру, а если что то останется то тут вопрос уже в том что значит что-то до конца не удаляется)
|
Он не удаляет впринципе, не рано, не поздно, вообще не удаляет.
Может быть пробелема во флеш плеере, версия там какая-нибудь без GC? |
Вообще не такие уж и критичные цифры, что бы искать "проблемы во флеш плеере".
|
Вообще можно и до 1Гб нагрузить, все-рано ничего не чистится. В дисплей листе всего один объект, а 1Гб памяти занят
|
| Часовой пояс GMT +4, время: 11:08. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.