Вообще работа мифического GC покрыта туманом. Вот простенький тест:

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.system.System;
import flash.utils.Timer;
import ru.inils.utils.Debugger;
public class Main extends Sprite
{
private var arr:Array = new Array();
private var timer:Timer;
private var s:Sprite;
public function Main():void
{
Debugger.trace(System.totalMemory / 1048576);
for (var i:uint = 0; i < 700000; i ++) {
s = new Sprite();
arr.push(s);
}
Debugger.trace(System.totalMemory / 1048576);
for (var j:Number = 0; j < arr.length; j ++ ) {
arr[j] = null;
}
Debugger.trace(System.totalMemory / 1048576);
timer = new Timer(5000);
timer.addEventListener(TimerEvent.TIMER, test);
timer.start();
}
private function test(e:TimerEvent):void {
Debugger.trace(System.totalMemory / 1048576);
//System.gc();
}
}
}
Если раскомментить последнюю строку - то все ок - память очищается. Если же нет (как и есть в релизном плеере), то фиг память очищается - у меня заняло 356 МБ и продолжает расти потихоньку (тоже непонятно почему). Вот уже 10 мин плеер работает - память не очищается...
Добавлено через 27 минут
Прошло 32 минуты. Память 357.4375 МБ. Не очистилась. Неужели по мнению GC 357 МБ - это незначительный объем, раз он не срабатывает?