2010-08-09 119 views

回答

1

使用代碼下面,我發現myVec = new Vector.<T>()是最快的方法。

輸出(以毫秒的平均時間來清空一個Vector.<Number> 100000隨機條目):

0.679 // using splice() 
0.024 // using new Vector.<T>() 
0.115 // using .length = 0; 

代碼:

var myVec:Vector.<Number> = new Vector.<Number>(); 

var emptyTime:int; 
var startTime:int; 

var totalEmptyTime:Number = 0; 

// Need to empty and repopulate vector 
const NUM_TRIALS:int = 1000; 

var j:int; 
for(j = 0; j < NUM_TRIALS; j++) 
{ 
    fillVector(); 
    startTime = getTimer(); 
    myVec.splice(0, myVec.length); 
    emptyTime = getTimer() - startTime; 
    totalEmptyTime += emptyTime; 
} 

trace(totalEmptyTime/NUM_TRIALS); 
totalEmptyTime = 0; 
// OR 
for(j = 0; j < NUM_TRIALS; j++) 
{ 
    fillVector(); 
    startTime = getTimer(); 
    myVec = new Vector.<Number>(); 
    emptyTime = getTimer() - startTime; 
    totalEmptyTime += emptyTime; 
} 

trace(totalEmptyTime/NUM_TRIALS); 
totalEmptyTime = 0; 
// OR 
for(j = 0; j < NUM_TRIALS; j++) 
{ 
    fillVector(); 
    startTime = getTimer(); 
    myVec.length = 0; 
    emptyTime = getTimer() - startTime; 
    totalEmptyTime += emptyTime; 
} 

trace(totalEmptyTime/NUM_TRIALS); 

function fillVector():void 
{ 
    for (var i:int = 0; i < 100000; i++) 
     myVec.push(Math.random()); 
} 
1

我聽說:

myVec.length=0 

是最快的方法...但我從來沒有驗證這一點

相關問題