К сожалению, существует ошибка, препятствующая когда-либо освобождать загрузчик памяти, см. Здесь: https://bugbase.adobe.com/index.cfm?event=bug&id=3071138. Согласно моим тестам, это может быть связано с тем, как быстро вы хотите удалить ранее загруженный контент, но это догадка , не принимайте это как должное.
Другие вещи: вызов BitmapData.dispose()
освобождает память «немедленно», но если вы этого не сделаете, то экземпляры BitmapData по-прежнему остаются в GC, однако это может занять больше времени, и растягивающиеся растровые изображения могут создавать впечатление памяти течь.
System.gc()
доступен только в отладчике, что означает, что ваши конечные пользователи не смогут его использовать.
Задавать переменным, особенно локальным переменным, значение null после того, как объект больше не используется, не имеет смысла, если бы компилятор был лишь немного умнее, он, вероятно, идентифицировал бы его как мертвый код и вообще удалил бы. Установка элементов данных в null полезна, только если вы на самом деле хотите, чтобы они были нулевыми по любой причине, то есть, как они это называют, «причине бизнес-логики», не пытайтесь «помочь» GC, все шансы у вас будут приносить больше вреда, чем пользы. Когда я сталкиваюсь с кодом, который присваивает null
, он обычно загорается красной лампочкой, это скорее плохой дизайн или избыточность. Если ваш код хорош, вам не нужно это делать.