无意中有个想法就是as3中+=和concat方法效率哪个比较好?
因为java中+=肯定没有stringbuffer的append效率高,因为+=相当与=?+?会额外创建对象,效率不好。于是测试下as3中+=和concat的效率,代码如下:
最后输出是这样的
first:7743ms
second:2978ms
也就是说+=比concat效率要高,唉,看来as3中的+=还是很快的
因为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中的+=还是很快的