计算js程序段运行时间的类(还包括字符串连接的优化类)(咋个办呢 zgbn)
2009-08-26 20:04:00 | 分类: JavaScript
/*StringBuffer字符串连接类*/
function StringBuffer(s){//大量字符连接时使用,ie下效率非常明显(1->100倍的速度提升),firefox,chrome反而慢(1->10倍的速度下降)Cs_0x37)
this.array=s?[s]:[];
this.append=function(s){
this.array.push(s);
}
this.toString=function(){
return this.array.join('');
}
}
/*程序段计时器类,可以嵌套计时*/
function TimerRecord(){
this.array=[];
this.begin=function(){
this.array.push(new Date());
}
this.end=function(){
if(this.array.length==0)throw 'begin()和end()要成对的调用';
var end=new Date();
var start=this.array.pop();
return end-start;
}
}
//测试
var tr=new TimerRecord();
//可以嵌套计时
tr.begin();
tr.begin();
var str='文字';
for(var i=0;i<50000;i++){
str+='文字文字';
}
document.body.innerHTML+='字符串加用时'+tr.end();
tr.begin();
var sb=new StringBuffer('文字');
for(var i=0;i<50000;i++){
sb.append('文字文字');
}
var str1=sb.toString();
document.body.innerHTML+='<br />数组加用时'+tr.end();
document.body.innerHTML+='<br />总用时'+tr.end();
</script>
———————— 咋个办呢 zgbn
本文介绍了一个用于优化JavaScript中大量字符连接的`StringBuffer`类,并通过实例展示了如何使用`TimerRecord`类来精确测量程序段的运行时间,特别关注了IE与Firefox、Chrome浏览器间的性能差异。
3626

被折叠的 条评论
为什么被折叠?



