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 相关文章推荐
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
Oct 19 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
Dec 23 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
JavaScript中的Repaint和Reflow用法详解
Jul 27 Javascript
JS实现图片高亮展示效果实例
Nov 24 Javascript
node.js从数据库获取数据
May 08 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
May 17 Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
Nuxt.js之自动路由原理的实现方法
Nov 21 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
yii用户注册表单验证实例
2015/12/26 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
jQuery中index()方法用法实例
2014/12/27 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
如何在AngularJs中调用第三方插件库
2017/05/21 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
python+Django+apache的配置方法详解
2016/06/01 Python
itchat和matplotlib的结合使用爬取微信信息的实例
2017/08/25 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
火车票抢票python代码公开揭秘!
2018/03/08 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python远程邮件控制电脑升级版
2019/05/23 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
优秀企业获奖感言
2014/02/01 职场文书
玲玲的画教学反思
2014/02/04 职场文书
安全目标责任书
2014/07/22 职场文书
五四青年节的活动方案
2014/08/20 职场文书
五年级上册复习计划
2015/01/19 职场文书
驳回起诉裁定书
2015/05/19 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL