AS3教程:for each in解析效率

來源:互聯網
上載者:User

新的 for each … in 除了遍曆XML,同樣可以用來遍曆數組和對象。建立“百萬雄兵”:

var testArr:Array = new Array();

for(var i:Number = 0; i < 1000000; i++)

{

    testArr.push(i);

}

  以前的 for 和 for … in 以及新的 for each … in 迴圈:

//for    260毫秒

var len:Number = testArr.length;

for(var j:Number = 0; j < len; j++)

{

    testArr[j]++;

}

//for … in    8000毫秒

for(var k:String in testArr)

{

    testArr[k]++;

}

//for each … in    58毫秒

for each (var m:Number in testArr)

{

    m++;

}

  效率如何呢?經過多次測試,for 迴圈平均260毫秒(不預存數組長度平均400毫秒),for … in 迴圈平均8000毫秒,for each … in 迴圈58毫秒!!所以應該盡量避免 for … in ,多用 for each … in ,用for迴圈的話最好預存數組長度(var len:Number = testArr.length;)。

  Object的情況,for … in 平均560毫秒,for each … in 平均8毫秒。

var testObj:Object = new Object();

for(var i:Number = 0; i < 100000; i++)

{

    testObj[i] = i + 1;

}

//for … in    讀取標籤    560毫秒

for(var j:String in testObj)

{

    testObj[j]++;

}

//for each … in    直接讀值    8毫秒

for each(var k:Number in testObj)

{

    k++;

}轉自http://www.jinflex.com/index.php/archives/91

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.