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

时间:2024-05-02 16:10:18 

先贴出完整代码.


<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 来进行字符串拼接操作.

标签:字符串累加,Array
0
投稿

猜你喜欢

  • python的mysql数据库建立表与插入数据操作示例

    2024-01-22 22:27:32
  • mysql 存储过程中变量的定义与赋值操作

    2024-01-22 18:44:55
  • python中for语句简单遍历数据的方法

    2023-04-18 11:26:45
  • 需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析

    2023-11-19 02:10:43
  • SQL中的三种去重方法小结

    2024-01-23 20:19:15
  • Python练习-购物单

    2023-01-21 16:27:33
  • Oracle与MySQL的区别及优缺点

    2024-01-25 12:47:52
  • python如何统计序列中元素

    2022-03-04 16:32:16
  • python中pickle模块浅析

    2022-02-06 06:27:38
  • PHP根据key删除数组中指定的元素

    2023-07-17 19:46:27
  • 如何将PySpark导入Python的放实现(2种)

    2022-10-21 02:12:16
  • MySQL开启Slow慢查询的方法示例

    2024-01-14 17:43:26
  • vue货币过滤器的实现方法

    2024-05-09 10:40:58
  • 空行不空格式排版组织原理

    2010-05-03 14:46:00
  • python用于url解码和中文解析的小脚本(python url decoder)

    2023-01-28 06:19:00
  • Python模块学习 datetime介绍

    2023-08-15 16:01:18
  • Vue + Webpack + Vue-loader学习教程之相关配置篇

    2024-04-29 13:10:40
  • Cython编译python为so 代码加密示例

    2023-01-22 13:16:48
  • python实现雪花飘落效果实例讲解

    2022-08-29 07:31:55
  • 如何解决客户机页面刷新时连接不上数据库问题?

    2009-12-16 18:24:00
  • asp之家 网络编程 m.aspxhome.com