导航

js自定义的StringBuilder类拼接字符串

Posted on 2009-10-11 12:08  阳光有约  阅读(461)  评论(1编辑  收藏  举报

用自定义的StringBuilder拼接大量的字符串 的性能
要远远高于用普通的 + 号拼,
在不同的机器上反映的性能可能会不一样,但都是成倍数的性能差距

下面是测试代码
<script>
function StringBuilder()
{
 this.strings = new Array();
}
StringBuilder.prototype.append = function(str){
 this.strings.push(str);
}
StringBuilder.prototype.tostring = function(){
 return this.strings.join("");
}
StringBuilder.prototype.clear = function(){
 this.strings.length = 0;
}


var d1 = new Date();
var obj = new StringBuilder();
for(i=0;i<10000;i++)
{
 obj.append("a");
}
var d2 = new Date();
document.write("StringBuilder类拼接10000个a消耗的时间" + (d2.getTime() - d1.getTime()) + "毫秒");

document.write("<hr>");

var d3 = new Date();
var str = "";
for(i=0;i<10000;i++)
{
 str += "a";
}
var d4 = new Date();
document.write("用+号拼接10000个a消耗的时间" + (d4.getTime() - d3.getTime()) + "毫秒");

</script>