ActionScript и слабое ссылочное поведение - PullRequest
0 голосов
/ 04 октября 2011

Я прочитал несколько статей о слабых ссылках ActionScript.Есть два типа.

  1. Трюк с Dictionary классом.
  2. EventDispatcher класс.

Я ожидал, что объект со слабой ссылкой исчезнет немедленно когда последняя сильная ссылка удалена.(независимо от поведения GC) Но эти приемы не сработали.Объект, на который ссылаются только слабо, все еще живет некоторое время, и выглядит в следующий раз GC исчезающим.Удаление всех сильных ссылок не делало объект со слабой ссылкой исчезающим из графа объектов.(Я знаю, что он не будет удален сразу)

Я ошибаюсь или просто ActionScript использует другое поведение?

1 Ответ

0 голосов
/ 04 октября 2011

Да, все слабые ссылки означают, что GC не считает его ссылкой на объект - подсчет ссылок является одним из способов, которым GC узнает, что объект все еще используется. Вам все еще нужно запустить сборку мусора до освобождения памяти.

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

...