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 相关文章推荐
COM中获取JavaScript数组大小的代码
Nov 22 Javascript
js 创建书签小工具之理论
Feb 25 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
jquery中交替点击事件的实现代码
Feb 14 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
jquery+正则实现统一的表单验证
Sep 20 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
vue axios基于常见业务场景的二次封装的实现
Sep 21 Javascript
vue-cli4.x创建企业级项目的方法步骤
Jun 18 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
Jul 20 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
关于PHP session 存储方式的详细介绍
2013/06/25 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
跟老齐学Python之Python安装
2014/09/12 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
python opencv读mp4视频的实例
2018/12/07 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
django drf框架自带的路由及最简化的视图
2019/09/10 Python
Python3实现二叉树的最大深度
2019/09/30 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
印度尼西亚最完整和最大的在线药房网站:Farmaku.com
2019/11/23 全球购物
物业经理求职自我评价
2013/09/22 职场文书
考试不及格的检讨书
2014/01/22 职场文书
校庆团日活动总结
2014/08/28 职场文书
七夕情人节问候语
2015/11/11 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
教你用python控制安卓手机
2021/05/13 Python