今天忽然想起测一下JS下的StringBuilder对象的效率,于是写了个循环来小测了一下,结果有点意外

  1. 直接使用 += 运算符的循环5万次:
   

1 var sbTest//=new Sys.StringBuilder();
2        for(var i=0;i<50000;i++)
3        {
4            var now=new Date();
5            sbTest += now.getSeconds() + "<br/>";
6         }

7        
8         $get("message").innerHTML=sbTest;//.toString('|<br/>');
测试结果如下:
   循环用时IE下32S,FireFox下2S
2.使用StringBuilder:
var sbTest=new Sys.StringBuilder();
        
for(var i=0;i<50000;i++)
        
{
            
var now=new Date();

            
sbTest.append(now.getSeconds());
         }

        
         $get(
"message").innerHTML=sbTest.toString('|<br/>');

 测试结果如下:
   50W次IE下6S,FireFox下3S

  结果相差竟然如此之大。IE下显然是用StringBuilder的效率要高于+=的效率,可是在FireFox下无论使用StringBuilder还是不使用之均无较大的差别。
posted on 2007-09-28 11:13  是谁啊?  阅读(224)  评论(0编辑  收藏  举报