javascript中字符串累加的性能优化(String和StringBuffer)
2008-09-21 22:45
567 查看
function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}在JAVA中操作N个字符串累加或许会使用:
String strs = "";
for(int i = 0; i<2000; i++) {
strs += "my test";
}
稍微有点编程经验的可能就会使用StringBuffer类来累加字符串,例如:
StringBuffer strs = new StringBuffer();
for(int i = 0; i<2000; i++) {
strs.append("my text");
}
性能大家测试一下就知道了,根据机器配置的不同时间差可能会不一样;
下面我们来看看javascript中如何使用:
在javascript中只有String对象而没有设计StringBuffer对象,那我们就来自己设计一个StringBuffer对象
function StringBuffer(){
this._strings_ = new Array();
}
StringBuffer.prototype.append = function(str) {
this._strings_.push(str);
}
StringBuffer.prototype.toString = function() {
return this._strings_.join("");
}
这个StringBuffer对象只有两个方法,一个是增加字符串,一个是输出累加的字符串结果,原理就是使用数组暂存累加的字符串内容最后再做字符串的链接操作,这样就把String对象中的累加操作省掉了,下面是20000次循环后的结果:
累加字符串共消耗1218毫秒
StringBuffer共消耗188毫秒
经测试差距在4-10倍之间,效率就很明显了,呵呵
String strs = "";
for(int i = 0; i<2000; i++) {
strs += "my test";
}
稍微有点编程经验的可能就会使用StringBuffer类来累加字符串,例如:
StringBuffer strs = new StringBuffer();
for(int i = 0; i<2000; i++) {
strs.append("my text");
}
性能大家测试一下就知道了,根据机器配置的不同时间差可能会不一样;
下面我们来看看javascript中如何使用:
在javascript中只有String对象而没有设计StringBuffer对象,那我们就来自己设计一个StringBuffer对象
function StringBuffer(){
this._strings_ = new Array();
}
StringBuffer.prototype.append = function(str) {
this._strings_.push(str);
}
StringBuffer.prototype.toString = function() {
return this._strings_.join("");
}
这个StringBuffer对象只有两个方法,一个是增加字符串,一个是输出累加的字符串结果,原理就是使用数组暂存累加的字符串内容最后再做字符串的链接操作,这样就把String对象中的累加操作省掉了,下面是20000次循环后的结果:
累加字符串共消耗1218毫秒
StringBuffer共消耗188毫秒
经测试差距在4-10倍之间,效率就很明显了,呵呵
相关文章推荐
- String和StringBuffer——字符串性能优化总结
- javascript string字符串优化问题
- JavaScript字符串数组拼接的性能测试及优化方法
- Java中字符串操作类String、StringBuffer、StringBuilder区别及性能对比测试
- java性能优化之String字符串优化
- Java中字符串累加的性能优化
- 针对字符串(std::string)的性能优化checklist
- JavaScript 字符串连接性能优化
- JavaScript中字符串连接性能优化
- JavaScript 字符串连接性能优化
- java String常量池与字符串拼接性能优化
- JavaScript中,String和StringBuffer性能PK
- 用StringBuffer优化字符串性能
- 字符串的拼接,StringBuffer性能上还是远远优于String的
- 浅谈java语言String字符串优化
- 如何优化JavaScript脚本的性能(转载)
- javascript性能优化之局部变量的使用
- [转贴]如何优化JavaScript脚本的性能
- javascript性能优化 之 DOM交互