Вы можете предотвратить это, не создавая мусор.Это означает, что у вас нет объектов без ссылок, null
объектов и т. Д. Когда вы знаете, что производительность не критична, вы можете уничтожить объекты, удалив все ссылки и сделав их null
, и GC начнет выполнять свою работу.
GC все еще будет "искать мусор", но он должен использовать гораздо меньше неожиданных ресурсов.
Дело со ссылками в том, что все объекты в AS3 являются указателями на "настоящий" объект,за исключением примитивных значений, таких как int, uint, String и т. д. Это легко проверить
var a = new Object(); // we create an Object and a pointer called "a"
a.property = "I'm alive";
var b = a; // we create a pointer to the Object called "b"
a = null; // the Object still exists
trace(b.property) // I'm alive
b = null; // the Object still exists but is unreferenced, and will be GCed
trace(b.property) // Error
Имейте это в виду при работе с GC.