Klasa Vector a klasa Array

W miarę możliwości należy korzystać z klasy Vector zamiast z klasy Array.

Klasa Vector umożliwia szybsze odczytywanie i zapisywanie niż klasa Array.

Prosty test wykazuje przewagę klasy Vector nad klasą Array. Poniższy kod stanowi test dla klasy Array:

var coordinates:Array = new Array(); 
var started:Number = getTimer(); 
  
for (var i:int = 0; i< 300000; i++) 
{ 
    coordinates[i] = Math.random()*1024; 
} 
  
trace(getTimer() - started); 
// output: 107 

Poniższy kod stanowi test dla klasy Vector:

var coordinates:Vector.<Number> = new Vector.<Number>(); 
var started:Number = getTimer(); 
  
for (var i:int = 0; i< 300000; i++) 
{ 
    coordinates[i] = Math.random()*1024; 
} 
 
trace(getTimer() - started); 
// output: 72 

Ten przykład można dodatkowo zoptymalizować, określając długość wektora i ustawiając jego długość jako stałą:

// Specify a fixed length and initialize its length 
var coordinates:Vector.<Number> = new Vector.<Number>(300000, true); 
  
var started:Number = getTimer(); 
  
for (var i:int = 0; i< 300000; i++) 
{ 
    coordinates[i] = Math.random()*1024; 
} 
 
trace(getTimer() - started); 
// output: 48 

Jeśli rozmiar wektora nie zostanie określony z góry, wówczas rozmiar będzie powiększany, gdy zabraknie miejsca na wektor. Przy każdej okazji wzrostu rozmiaru wektora będzie następowało przydzielenie nowego bloku pamięci. Bieżąca treść wektora zostanie skopiowana do nowego bloku pamięci. Dodatkowe przydzielanie i kopiowanie danych powoduje pogorszenie wydajności. Powyższy kod został zoptymalizowany pod względem wydajności poprzez określenie początkowego rozmiaru wektora. Jednak kod nie został zoptymalizowany pod względem łatwości jego modyfikowania. W celu zwiększenia łatwości modyfikowania należy zapisać często używaną wartość w stałej:

// Store the reused value to maintain code easily 
const MAX_NUM:int = 300000; 
  
var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true); 
var started:Number = getTimer(); 
  
for (var i:int = 0; i< MAX_NUM; i++) 
{ 
    coordinates[i] = Math.random()*1024; 
} 
  
trace(getTimer() - started); 
// output: 47 

W miarę możliwości należy korzystać z interfejsów API obiektu Vector, ponieważ mogą one działać szybciej.