JS字符串累加Array不一定比字符串累加快(根据电脑配置)


Posted in Javascript onMay 14, 2012

先贴出完整代码.

<script type="text/javascript"> 
function StringBuffer() { 
this._strings = new Array(); 
} 
StringBuffer.prototype.append = function(str) { 
this._strings.push(str); 
//StringBuffer.prototype.length = this._strings.length;//每多一行,就会多消耗处理时间 
var i = "asdfasdf"; 
} 
StringBuffer.prototype.toString = function() { 
this._strings.join(""); 
} 
/*String类 + 号累加*/ 
var d = new Date();//累加开始时间 
var str = "1"; 
for (var i = 0; i < 200; i++) { 
str += "ssss"; 
for (var i = 0; i < 30000; i++) { 
str += "text"; 
} 
} 
var d2 = new Date(); //累加结束时间 
document.write("+:"+(d2.getTime() - d.getTime()) + "milliseconds");//累加30000用时 
/*自定义StringBuffer类 字符串累加*/ 
d = new Date(); //StringBuffer开始时间 
var buffer = new StringBuffer(); 
for (var i = 0; i < 200; i++) { 
str += "ssss"; 
for (var i = 0; i < 30000; i++) { 
buffer.append("text"); 
} 
} 
var resultstr = buffer.toString(); 
d2 = new Date(); 
document.write("<br/>StringBuffer:" + (d2.getTime() - d.getTime()) + "milliseconds"); 
/*直接使用Array 不进行封装*/ 
d = new Date(); 
var arr = new Array(); 
for (var i = 0; i < 200; i++) { 
str += "ssss"; 
for (var i = 0; i < 30000; i++) { 
arr.push("text"); 
} 
} 
var resStr = arr.join(""); 
d2 = new Date(); 
document.write("<br/>Array:" + (d2.getTime() - d.getTime()) + "milliseconds"); 
</script> 
[code]

先说下我的机器配置 如图1:
JS字符串累加Array不一定比字符串累加快(根据电脑配置)

运行时间结果 如图2:
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
在一台N老的机子上运行结果 如图3:
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
上面一堆的代码和图可能乱了。总结如下:

机器配置较低时:“+”字符串拼接方式消耗时间明显高于Array 方式
机器配置较高时:“+”字符串拼接方式消耗时间可能会与Array方式持平。甚者会更短.

总结:为了保险起见。还是推荐使用Array 来进行字符串拼接操作.

Javascript 相关文章推荐
firefox浏览器下javascript 拖动层效果与原理分析代码
Dec 04 Javascript
js切换div css注意的细节
Dec 10 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
JavaScript网页定位详解
Jan 13 Javascript
html的DOM中document对象images集合用法实例
Jan 21 Javascript
微信小程序 获取微信OpenId详解及实例代码
Oct 31 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
vuejs实现ready函数加载完之后执行某个函数的方法
Aug 31 Javascript
微信小程序bindtap事件与冒泡阻止详解
Aug 08 Javascript
js实现选项卡效果
Mar 07 Javascript
创建nuxt.js项目流程图解
Mar 13 Javascript
分享一款超好用的JavaScript 打包压缩工具
Apr 26 Javascript
JQuery 返回布尔值Is()条件判断方法代码
May 14 #Javascript
JQuery选择器特辑 详细小结
May 14 #Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
May 14 #Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
May 13 #Javascript
jQuery循环滚动展示代码 可应用到文字和图片上
May 11 #Javascript
基于jQuery的公告无限循环滚动实现代码
May 11 #Javascript
javascript 事件处理、鼠标拖动效果实现方法详解
May 11 #Javascript
You might like
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
seaJs使用心得之exports与module.exports的区别实例分析
2017/10/13 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
Element-ui 自带的两种远程搜索(模糊查询)用法讲解
2021/01/29 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
Python多进程同步简单实现代码
2016/04/27 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
python删除过期log文件操作实例解析
2018/01/31 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
Python提取频域特征知识点浅析
2019/03/04 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
error和exception有什么区别
2012/10/02 面试题
社团文化节策划书
2014/02/01 职场文书
函授本科自我鉴定
2014/02/04 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
城管大队整治方案
2014/05/06 职场文书
村抢险救灾方案
2014/05/09 职场文书
经典毕业生求职信
2014/07/12 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
学校标语口号大全
2015/12/26 职场文书
会计做账心得体会
2016/01/22 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python