Vector sınıfının Array sınıfıyla karşılaştırılması

Mümkünse Array sınıfı yerine Vector sınıfını kullanın.

Vector sınıfı, Array sınıfından daha hızlı okuma ve yazma erişimine olanak verir.

Basit bir kıyaslama Vector sınıfının Array sınıfına kıyasla sağladığı faydaları gösterir. Aşağıdaki kod Array sınıfı için bir kıyaslamayı gösterir:

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 

Aşağıdaki kod Vector sınıfı için bir kıyaslamayı gösterir:

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 

Örnek, vektöre belirli bir uzunluk atayarak ve uzunluğunu sabit olarak ayarlayarak daha etkin hale getirilebilir:

// 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 

Vektörün boyutu önceden belirlenmezse, vektör alanı azaldıkça boyut artar. Vektör boyutu her arttığında yeni bir bellek bloğu ayrılır. Geçerli vektör içeriği yeni bellek bloğuna kopyalanır. Bu fazladan bellek ayırma ve veri kopyalama işlemi performansa zarar verir. Yukarıdaki kod vektörün ilk boyutunu belirleyerek performans için en iyi hale getirilmiştir. Ancak kod korunabilirlik açısından en iyi hale getirilmemiştir. Korunabilirliği arttırmak için yeniden kullanılmış değeri bir sabitte depolayın:

// 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 

Mümkün oldukça, daha hızlı çalıştıkları için Vector nesnesi API'lerini kullanmaya çalışın.