Управление памятью в гибких программах - PullRequest
0 голосов
/ 24 ноября 2011

Я программист, но мне нечего было делать для управления памятью в моих проектах.Я думаю, что отсутствие управления памятью является причиной задержки загрузки SWF-файла.Может ли кто-нибудь помочь мне с управлением памятью в кодах flex / as3.

1 Ответ

4 голосов
/ 24 ноября 2011

Одним из наиболее проблемных способов использования памяти является не удаление прослушивателей событий, когда они вам больше не нужны.

Например,

button.addEventListener(MouseEvent.CLICK, doSomething);

Когда вы закончите с этой кнопкой, удалите прослушиватель событий, чтобы владелец doSomething мог собирать мусор.Когда вы добавляете прослушиватель событий в кнопку, владелец счетчика ссылок "doSomething" получает +1.Каждый раз, когда вы удаляете прослушиватель событий, вы -1 этот счетчик ссылок.Для сбора мусора счетчик ссылок должен быть равен нулю.

Вы можете позволить флеш-плееру сделать это за вас (в большинстве случаев), используя прослушиватели событий со слабыми ссылками, например:

button.addEventListener(MouseEvent.CLICK, doSomething, false, 0, true);

Вот еще несколько советов, которые помогут вам управлять памятью: http://blog.skinkers.com/2010/10/08/memory-management-in-air-as3-flash-garbage-collection/

А если вы хотите узнать подробнее о сборщике мусора, вот фантастический ресурс: http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...