as3中字符串連接+=和concat函數的效率問題

無意中有個想法就是as3中+=和concat方法效率哪個比較好?
因爲java中+=肯定沒有stringbuffer的append效率高,因爲+=相當與=?+?會額外創建對象,效率不好。於是測試下as3中+=和concat的效率,代碼如下:

其中爲了取消循環先後順序的影響,我也曾把concat和+=上下交換了下,不過結果是一致的

public class testzz extends Sprite
    {
        public function testzz()
        {
            var times:int = 10000000;
            var teststr:String = "";
            var a:int = getTimer();
            for(var i:int =0;i < times; i++){
                teststr.concat("a");
            }
            var b:int = getTimer();
            trace("first:"+(b-a)+"ms");
 
            teststr = "";
            a = getTimer();
            for(var i:int =0;i < times; i++){
                teststr += "a";
            }
            b = getTimer();
            trace("second:"+(b-a)+"ms");
        }
    }

最後輸出是這樣的
first:7743ms
second:2978ms
也就是說+=比concat效率要高,唉,看來as3中的+=還是很快的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章