JavaScript 使用对象处理100万个字符串拼接16s

拼接1000000个字符串,计算机需要处理多长时间呢?以下采用两种方式来更好的理解JavaScript中使用对象处理问题的优势,尤其是在处理大数据的情况下,这种优势会更加明显。

无论是采用面向对象还是面向过程,其实就是解决问题的方式;就来拿洗衣服来说,洗一件衣服就没必要去造一个洗衣机;

而洗N件衣服,事先准备一个洗衣机比用手洗来的更为有效;回到根本就是能够最大限度的节约有效利用计算机内存就是最好的

我们处理编程无非是节约时间和空间效率

举例来说javaScript 中最常见的一个问题是字符串连接的性能。请考虑下面的代码:

var str = "hello ";

str += "world";

在这段代码在系统执行的步骤如下:

创建存储 "hello " 的字符串。

创建存储 "world" 的字符串。

创建存储连接结果的字符串。

把 str 的当前内容复制到结果中。

把 "world" 复制到结果中。

更新 str,使它指向结果。

每次完成字符串连接都会执行步骤 2 到 6,使得这种操作非常消耗资源。如果重复这一过程几百次,甚至几千次,就会造成性能问题。代码结果如下:

JavaScript 使用对象处理100万个字符串拼接16s

解决方法是用 Array 对象存储字符串,然后用 join() 方法(参数是空字符串)这样,无论数组中引入多少字符串都不成问题,因为只在调用 join() 方法时才会发生连接操作。此时测试的代码和结果如下:

JavaScript 使用对象处理100万个字符串拼接16s

执行10000结果如下:


JavaScript 使用对象处理100万个字符串拼接16s

执行100000结果如下:

JavaScript 使用对象处理100万个字符串拼接16s

由于测试的电脑比较老了,性能有限,结果还是比较明显的,也印证了使用面向对象对处理大数据效率更高!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值