Использование ключевого слова new
создаст новый экземпляр PropertyRow.GC не освободит память после установки переменной null
, потому что экземпляры все еще сохраняются в массиве.Следовательно, использование переменной-члена не принесет никакого преимущества в производительности по сравнению с использованием временной переменной в цикле создания.
Если вы собираетесь оптимизировать свой код для повышения производительности, сначала вы должны всегда пытаться использовать Векторы вместо массивов.
ВАЖНОЕ РЕДАКТИРОВАНИЕ
Как я выяснил при тестировании векторной производительности для другой вопрос , это верно только для числовых типов!Если вы собираетесь использовать вектор любого типа объекта, массив будет на самом деле быстрее!Остальная часть моего ответа ниже все еще применима - просто используйте массивы вместо Vector.<PropertyRow>
.
END EDIT
Тогда, если этого можно избежать, не используйтеpush (), но синтаксис скобок (только если вы знаете точный размер вектора - это важно, иначе синтаксис скобок не сработает):
var vec_size:int = 1000;
var myArray:Array = new Array (vec_size);
for (var i : int = 0; i< vec_size; i++) {
myArray[i] = new PropertyRow(); // if you're not setting any properties, you won't even need a temp variable ;)
}
Если вы беспокоитесь о сборке мусора иповторное использование объектов, также проверьте ссылку Adobe на пул объектов .