function StringBuffer() {
this._strs = new Array;
}
StringBuffer.prototype.append = function (str) {
this._strs.push(str);
};
StringBuffer.prototype.toString = function() {
this._strs.join("");
};
10000条记录,原始字符串加和数组拼接的对比:
firefox3.5:
原始:2-3秒
拼接:1-2秒
ie7:
原始:313-328秒
拼接:78-94秒
ie6:
原始:143秒
拼接:63秒
chrome:
原始:1秒
拼接:3秒
当记录上升到100000条的时候:
ie7:
原始:62602秒
拼接:1327秒
firefox3.5:
原始:15-18秒
拼接:28秒
chrome:
原始:28-31秒
拼接:31秒
说明在新的高版本浏览器,js虚拟机的性能对于字符串加的操作已经优化很多了。但是ie依然是比较差,不过没有测试ie8,不知道速度如何。
对于大数据量,其实直接加和拼接对于firefox速度上差别不大,但是这仅仅测试的是速度,从内存占用来看,拼接所占用的肯定是比原始加要少很多。可惜ie依然是大部分市场,特别是ie6,所以从性能上来看,还是拼接来的保险。或者说拼接其实就是专门用来优化ie的。