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 相关文章推荐
javascript 支持ie和firefox杰奇翻页函数
Jul 22 Javascript
document.compatMode介绍
May 21 Javascript
Javascript 定时器调用传递参数的方法
Nov 12 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
微信小程序 删除项目工程实现步骤
Nov 10 Javascript
jQuery.Validate表单验证插件的使用示例详解
Jan 04 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
Sep 27 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
Nov 02 Javascript
详解Vue CLI 3.0脚手架如何mock数据
Nov 23 Javascript
配置eslint规范项目代码风格
Mar 11 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
May 13 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 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
推荐一篇入门级的Class文章
2007/03/19 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
对联广告js flash激活
2006/10/19 Javascript
jQuery下拉美化搜索表单效果代码分享
2015/08/25 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
JavaScript oncopy事件用法实例解析
2020/05/13 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
python将文本转换成图片输出的方法
2015/04/28 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
基于Django静态资源部署404的解决方法
2019/07/28 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
如何教少儿学习Python编程
2020/07/10 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
意大利在线药房:Saninforma
2021/02/11 全球购物
安全演讲稿大全
2014/05/09 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
数学教师个人工作总结
2015/02/06 职场文书
整改通知书
2015/04/20 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
看雷锋电影观后感
2015/06/10 职场文书
教育读书笔记
2015/07/02 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python