
04.03.2010, 17:06
|
|
Регистрация: Jul 2009
Сообщений: 240
|
как работает сборщик мусора?
Что-то я не пойму - как работает сборщик мусора. То есть глобально все ясно - если на переменную никто не ссылается - она помечается на удаление.
Но...
1. Предположим, у нас MovieClip, в который addChild()-ом добавили Sprite. У этого sprite свойство parent ссылается на этот MovieClip, значит такой мувик никогда не будет удален?
2. Если сделали var r = BitmapData(), попользовались им (как промежуточным битмэпом, то есть так что он больше не используется), и дальше приравняли r=null, не вызвав r.dispose() -- увидет ли сборщик мусора данные, которые содержались в битмэпе?
3.если на мувике нарисовали что-то через graphics.gradientFill() используя BitmapData, а потом мувиком попользовались и выбросили. для битмэпа dispose ведь не вызывался? значит получается что ссылаясь друг на друга такая конструкция никогда не загарбажится?
4. Практика показывает, что конструкции вроде myvar.addEventListener("tralala", myfunc, false, 0, true ) иногда "ломаются" и внезапно перестают работать. При этом сам обьект myvar вроде как есть, он не локальная переменная и null ему никто не присваивал. Это глюки gc или тут другая причина?
|