Javascript中字符串相加和Array.join的性能对比

 

网上的文章,有的说字符串相加快,有的说用Array.join做一个模拟的StringBuffer快,还是实际写个实例试试把

 

function CompareTime(){
    var d1=new Date();
    var str="";
    var i;
    for(i=0;i<1000000;i++)
    {
        str+="text";
    }
    
    var d2=new Date();  
    document.writeln("concatenation with plus:" +(d2.getTime()-d1.getTime())+"ms"+"<br/>");
    
    var oArray=new Array;
    d1=new Date();
    for(i=0;i<1000000;i++){
        oArray.push("text");
    }
    var sResult=oArray.join("");
    d2= new Date();   
    document.writeln("oncatenation with Array:"+(d2.getTime()-d1.getTime())+"ms");
}

 

 

 

1万次循环执行结果:

FireFox3
concatenation with plus:6ms
oncatenation with Array:7ms
 

 

Chrome
concatenation with plus:1ms
oncatenation with Array:3ms

 

 

IE6 写道
concatenation with plus:171ms
oncatenation with Array:32ms
 

 

100万次循环执行结果

FireFox3
concatenation with plus:454ms
oncatenation with Array:521ms

 

Chrome
concatenation with plus:483ms
oncatenation with Array:543ms

 

 

IE6 写道
浏览器无响应,根本出不了结果
 

结果:在FireFox和 Chrome 浏览器中,字符串相加速度更快,在IE6中,则是Array.join更快,不过总的来说IE6的解析性能真是太差了,在循环达到10万次以上时,就开始 无响应了。BS一下。 没有测试过IE7,IE8, 有兴趣的可以测试一下把结果告知。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值