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 相关文章推荐
复制小说文本时出现的随机乱码的去除方法
Sep 07 Javascript
ng2学习笔记之bootstrap中的component使用教程
Mar 09 Javascript
使用vue-resource进行数据交互的实例
Sep 02 Javascript
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
vue封装一个简单的div框选时间的组件的方法
Jan 06 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
Jun 03 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
Nov 26 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
Jan 21 Javascript
javascript实现雪花飘落效果
Aug 19 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
Sep 17 Javascript
vue 导航守卫和axios拦截器有哪些区别
Dec 19 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
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
业余方法DIY电子管FM收音机
2021/03/02 无线电
劣质的PHP代码简化
2010/02/08 PHP
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
ExtJS扩展 垂直tabLayout实现代码
2009/06/21 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
JS求平均值的小例子
2013/11/29 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
js中this用法实例详解
2015/05/05 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
2018/09/28 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
Python自动登录126邮箱的方法
2015/07/10 Python
PyCharm鼠标右键不显示Run unittest的解决方法
2018/11/30 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
python Shapely使用指南详解
2020/02/18 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
Sneaker Studio波兰:购买运动鞋
2018/04/28 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
迟到检讨书900字
2014/01/14 职场文书
倡议书格式
2014/04/14 职场文书
献爱心活动总结
2014/05/07 职场文书
投标授权委托书范文
2014/08/02 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server