博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js字符串拼接性能检测
阅读量:5918 次
发布时间:2019-06-19

本文共 2149 字,大约阅读时间需要 7 分钟。

从网上搜索到,js字符串拼接有两种方式

第一种:使用加法运算符拼接,例如:str = 'a' + 'b';

第二种:使用数组存储字符串,然后通过方法join拼接,例如 arr = ['a','b'];str = arr.join("");

由于不同浏览器对字符串有不同的存储方式,造成这两种方式有不同的性能问题。影响性能的主要有两个变量,每个拼接字符串的长度和拼接字符串的个数(也即循环拼接次数)。

以下代码在每个浏览器的最新版本中检查不同方式的拼接性能,对每种方式所花费的时间进行对比,来粗略评估两种在不同影响变量下的性能问题。

function test(string,time){

  var str = "",
  arr = [],
  before,
  after;
  before = new Date();
  for (var i = 0; i < time; i++) {
    str += string;
  };
  after = new Date();
  console.log("字符串拼接方式耗时:"+(after.getTime()- before.getTime())+"毫秒;");

  before = new Date();
  for (var i = 0; i < time; i++) {
  arr[i] = string;
  };
  str = arr.join("");
  after = new Date();
  console.log("字符串拼接方式耗时:"+(after.getTime()- before.getTime())+"毫秒;");
}

1: 当拼接字符串的长度string和拼接字符串的个数time比较小时(每个浏览器检查三组);

test("abc",100);

chome,firfox,ie(10),opera中几乎很够快速的完成,所花费的时间为零,没有性能问题。

2:当拼接字符串的长度string比较大,拼接字符串的个数time比较小时;

test("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz",100);

chome,firfox,ie,opera中几乎很够快速的完成,所花费的时间为零,没有性能问题。

3: 当拼接字符串的长度string比较小,拼接字符串的个数time比较大时;

test("abc",50000);

chome:

字符串拼接方式耗时:2毫秒      
字符串拼接方式耗时:12毫秒
字符串拼接方式耗时:3毫秒      
字符串拼接方式耗时:1毫秒
字符串拼接方式耗时:1毫秒      字符串拼接方式耗时:3毫秒
 
firfox:
字符串拼接方式耗时:7毫秒     
字符串拼接方式耗时:8毫秒
字符串拼接方式耗时:6毫秒     
字符串拼接方式耗时:8毫秒
字符串拼接方式耗时:6毫秒     
字符串拼接方式耗时:8毫秒

 ie:

字符串拼接方式耗时:11毫秒   字符串拼接方式耗时:5毫秒 

字符串拼接方式耗时:8毫秒     字符串拼接方式耗时:5毫秒 

字符串拼接方式耗时:7毫秒     字符串拼接方式耗时:5毫秒

opera

字符串拼接方式耗时:9毫秒    
字符串拼接方式耗时:5毫秒
字符串拼接方式耗时:5毫秒    
字符串拼接方式耗时:9毫秒
字符串拼接方式耗时:7毫秒    字
符串拼接方式耗时:2毫秒
 
4: 当拼接字符串的长度string和拼接字符串的个数time都比较大时;
test("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz",50000)

chome:

字符串拼接方式耗时:9毫秒       字符串拼接方式耗时:10毫秒
字符串拼接方式耗时:8毫秒       字符串拼接方式耗时:20毫秒
字符串拼接方式耗时:4毫秒      字符串拼接方式耗时:29毫秒
 
firfox:
字符串拼接方式耗时:6毫秒     
字符串拼接方式耗时:24毫秒
字符串拼接方式耗时:4毫秒     
字符串拼接方式耗时:24毫秒
字符串拼接方式耗时:5毫秒     
字符串拼接方式耗时:27毫秒

 ie:

字符串拼接方式耗时:6毫秒     字符串拼接方式耗时:14毫秒 

字符串拼接方式耗时:7毫秒     字符串拼接方式耗时:11毫秒 

字符串拼接方式耗时:6毫秒     字符串拼接方式耗时:13毫秒

opera

字符串拼接方式耗时:13毫秒     字符串拼接方式耗时:15毫秒
字符串拼接方式耗时:7毫秒       字符串拼接方式耗时:15毫秒
字符串拼接方式耗时:19毫秒    字 符串拼接方式耗时:18毫秒
 
总结:
(一)当字符串的个数比较小时,用加法运算和数组方式都不成问题,选择自己喜欢的方式
(二)当字符串的个数比较大时,字符串的长度比较大,最好选择加法运算(从数据上分析,加法运算所用时间少);字符串的长度比较小,chome、firfox中使用加法运算花费时间更少,ie、opera中使用数组方式花费时间更少。
 

转载于:https://www.cnblogs.com/outside/p/3708982.html

你可能感兴趣的文章
Cocos2D-x权威指南: CCNode类方法:
查看>>
Android ----制作自己的Vendor
查看>>
几种更新(Update语句)查询的方法
查看>>
SVN莫名出错,网上找遍无果,递归删除当前目录下所有.svn文件名
查看>>
vs2010静态链接MFC库报链接错误
查看>>
八大排序算法总结
查看>>
Python 多重循环
查看>>
UVA 10385 - Duathlon(三分法)
查看>>
特征选择方法之信息增益
查看>>
杭电 2187 (贪心题)悼念512汶川大地震遇难同胞——老人是真饿了
查看>>
转:QQ通信原理及QQ是怎么穿透内网进行通信的?
查看>>
[MEAN Stack] First API -- 3. Select by ID with Mongoose and Express
查看>>
HDFS API操作实践
查看>>
LoadImage()的使用
查看>>
Android 演示 Android ListView 和 github XListView(1-3)
查看>>
Genymotion的shell命令行操作
查看>>
查看linux系统类型、版本、位数
查看>>
Swipecards
查看>>
Android开发:如何实现TCP和UDP传输
查看>>
Java写的爬虫的基本程序
查看>>