as3: сращивание массива полностью удаляет объект? - PullRequest
2 голосов
/ 09 октября 2011

У меня есть много экранных объектов в массиве, который я постоянно добавляю и удаляю со сцены.После удаления они больше не используются.

Учитывая, что displayObject отсутствует в списке отображения и не имеет прослушивателей событий ... будет ли сборка мусора, если я использую splice для удаления его из массива?

Безопаснее ли сначала обнулить объект?

myArray[2] = null;
myArray.splice(2,1);

Ответы [ 2 ]

5 голосов
/ 09 октября 2011

Пока не осталось ссылок на DisplayObject, тогда да, удаление его из массива с помощью splice или даже просто установка его на null позволит ему стать кандидатом для сборки мусора.1004 *

Обновление: Установка элемента на null перед удалением из массива является избыточной и не имеет значения.

1 голос
/ 10 октября 2011

Если вам нужна лучшая производительность, я предлагаю вам использовать пулы вместо создания большого количества объектов и помещения их в массив.Используйте некоторую реализацию связанного списка вместо операции splice (), которая очень медленная.

...