`
wenjinglian
  • 浏览: 824466 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

“字符串拼接”的效率

阅读更多

 

有关JS中字符串的相关文章,现在网上大概不计其数了。这里我不想再就这个问题做过多的论述,只是对几种方式的实现在各种浏览器中的执行效率进行对比做个总结。

拼接字符串,大体分为两种方式,一种通过+号拼接(方式1),这种方式在IE6中效率是极其低下的,因此就出现了第二种方式:采用数组保存,最后通过join拼接,这种方式的效率在IE6下对比会发现速度差异非常大。此外还有很多朋友估计没有注意过,数组拼接的方式又分为两种,一种是通过push将字符串放入数组(方式2),另外一种是通过arr[arr.length]='string'的方式存入(方式3),这两种方式的性能也是有一些差异的。这样,我们发现一共是有三种不同的方式的,下面我对这三种方式在不同浏览器下的执行效率做了个对比,具体数据就不贴出来(因为每次的数据都是不同的,但执行速度的排名是比较稳定的),只对他们的执行效率做个排名。

===========================================

浏览器   方式1  方式2  方式3  引擎
google    3      2      1     AppleWebKit/525.19
safari    3      2      1     AppleWebKit/528.16
opera     1      3      2     Presto/2.1.1
ff3       1      3      2     Gecko/2009042316
ff2       1      3      2     Gecko/20081201
IE8       1      3      2     Trident/4.0
IE7       3      2      1     未知
IE6       3      2      1     未知

=============================================

浏览器在不断更新:测试数据结果不一定都正确,我测试了chrome浏览器,++的拼接是最快的。

对比可做以下简单总结:

  1. 在FF及IE8中直接用+号拼接的方式还是效率的最高的方式,其它情况下该方式是最慢的。
  2. 数组拼接的方式里arr[arr.length]=''的方式是快于push方式的。
  3. 在进行字符串拼接的时间:1要判断浏览器类型,如果是+号拼接方式快则采用+号方式直接拼接,如果是数组方式,则采用arr[arr.length]=''的方式将字符串存入数组然后再采用join的方式拼接。


最后附上测试用到得代码(注:为准确测试,在不同浏览器要修改循环次数数值)

 

<html> 
<head> 
<title>Listing 1-2</title> 
<script type="text/javascript"><!--
 
function badTest() { 
    var startTime = new Date().valueOf(); 
    var s = ""; 
    for (var i = 0; i < 100000; i++) { 
        s += "This is a test string"; 
    } 
    return new Date().valueOf() - startTime; 
} 
function goodTest() { 
    var startTime = new Date().valueOf(); 
    var stringBuffer = new Array(); 
    for (var i = 0; i < 100000; i++) { 
        stringBuffer.push("This is a test string"); 
    } 
    var s = stringBuffer.join(""); 
    return new Date().valueOf() - startTime; 
} 
function betterTest() { 
    var startTime = new Date().valueOf(); 
    var stringBuffer = new Array(); 
    for (var i = 0; i < 100000; i++) { 
        stringBuffer[stringBuffer.length] = "This is a test string"; 
    } 
    var s = stringBuffer.join(""); 
    return new Date().valueOf() - startTime; 
} 
function doTests() { 
    var htm = ""; 
    htm += "Time badTest took: " + badTest() + "<br>"; 
    htm += "Time goodTest took: " + goodTest() + "<br>"; 
    htm += "Time betterTest took: " + betterTest(); 
    htm += "<br>" + navigator.userAgent; 
    document.getElementById("result").innerHTML = htm; 
} 
 
// --></script> 
</head> 
<body> 
<a href="javascript:void(0);" mce_href="javascript:void(0);" onClick="doTests();">Click here to test</a> 
<br><br> 
<div id="result"> </div> 
</body> 
</html>

 

分享到:
评论

相关推荐

    Java字符串拼接效率测试过程解析

    Java字符串拼接效率测试过程解析 Java字符串拼接效率测试过程解析是Java开发中非常重要的一个话题。字符串拼接是Java开发中最常见的操作之一,但是不同的拼接方式对性能的影响是巨大的。本文主要介绍了Java字符串...

    字符串拼接工具

    总的来说,"字符串拼接工具"是简化字符串处理工作流程的有效辅助,它通过自动化和批量操作,节省了开发者的宝贵时间和精力,提高了工作效率。而"StrConnect"这个名字很可能就是这个工具的执行文件名,可能是一个可...

    JAVA的字符串拼接[参照].pdf

    然而,如果涉及到大量字符串拼接,特别是在循环中,应优先考虑使用`StringBuffer`或`StringBuilder`,以提高程序的运行效率。在多线程环境中,选择`StringBuffer`;而在单线程环境中,`StringBuilder`通常是更好的...

    java中拼接字符串的5种方法效率对比

    随着项目的发展和复杂度的增加,字符串拼接的效率变得越来越重要。今天,我们将通过测试和分析,比较 Java 中 5 种不同的字符串拼接方法的效率,并探究每种方法背后的实现原理。 第一种方法:使用 + 运算符 在 Java...

    将excal批量数据插入到postgresql数据库(目前实现字符串拼接的方式)

    在本教程中,我们将聚焦于如何将Excel数据批量导入到PostgreSQL数据库,特别关注一种常见的方法——通过字符串拼接的方式。PostgreSQL是一个功能强大的开源关系型数据库管理系统,而Excel则是广泛使用的电子表格工具...

    StringBuilder字符串拼接工具

    标题"StringBuilder字符串拼接工具"暗示了我们讨论的核心是关于如何利用`StringBuilder`进行高效的字符串处理。在Java程序中,当需要动态地构建字符串,尤其是在循环或者递归中,`StringBuilder`是首选工具。它的...

    C#实现字符串处理升级版帮助类cs代码

    4. **可变字符串**:C# 中的 `StringBuilder` 类能够有效处理大量字符串拼接的情况,在需要频繁修改的情况下比直接使用字符串拼接效率更高。 5. **正则表达式**:C#提供了强大的正则表达式库,可以通过正则表达式...

    字符串拼接 聚合函数.rar

    在IT领域,字符串拼接和聚合函数是编程中常见的操作,尤其在处理数据时显得尤为重要。字符串拼接是指将两个或多个字符串连接成一个新字符串的过程,而聚合函数则是在一组值上执行计算并返回单个值的函数,通常用于...

    ibatis拼接字符串

    在本篇文章中,我们将深入探讨如何使用 Java 编程语言结合 iBatis 框架进行 SQL 字符串的动态拼接。通过分析提供的代码片段,我们可以了解到在实际开发过程中,这种动态 SQL 的构建方式非常常见,尤其是在处理复杂的...

    MFC字符串CString 操作用法详解

    通过以上介绍,我们可以看出`CString`提供了丰富的字符串处理功能,极大地简化了字符串的处理过程,提高了开发效率。在实际开发过程中,熟练掌握这些函数的使用方法,能够帮助我们更加高效地完成字符串相关的任务。

    详解C#中的字符串拼接@ $

    对于希望进一步提高编码效率的开发者来说,掌握这两种字符串拼接方式是必须的。当然,在实际应用中,我们还需要注意字符串的性能问题,特别是在涉及大量数据操作时,应权衡使用字符串拼接的时机。

    javascript字符串拼接的效率问题|angluo-javascript-60995.pdf

    在JavaScript编程中,字符串拼接是常用的操作,但其效率问题一直被讨论。传统上,使用加号(+)操作符进行字符串拼接和使用数组方法拼接是两种常见的做法,但它们在性能和资源利用方面存在差异。 在早期的...

    for循环中如何正确使用字符串拼接

    在本文中,我们将探讨在`for`循环中如何正确使用字符串拼接,并分析几种常见方法的效率和底层实现。 首先,我们来看几种常用的字符串拼接方式: 1. `StringBuffer` 和 `StringBuilder`: 这两者都是用来处理可变...

    字符串拼接

    通过合理地选择字符串拼接的方法,可以有效地提高代码的可读性和执行效率。 #### 三、JavaScript中的字符串拼接方法 ##### 1. 拼接符号 (+) **示例:** ```javascript let name = "John"; let age = 30; let ...

    asp字符串连接符&、多个字符串相加、字符串拼接类

    首先,ASP中的字符串连接符`&`是最基本的字符串拼接方式。当你想要将两个或更多的字符串合并成一个时,可以使用这个符号。例如: ```asp response.write "jb51.net" & "我们" ``` 上述代码会输出"jb51.net我们"。...

    c++面试字符串_C++字符串_

    在面试中,面试官可能会询问关于这些知识点的具体应用,如字符串拼接效率,字符串查找算法,内存管理策略,以及如何避免常见的字符串操作错误。理解并熟练掌握这些概念和函数,将有助于你在面试中脱颖而出。

    关于JDK8中的字符串拼接示例详解

    在Java编程中,字符串拼接是一项常见的操作,但它的效率问题一直备受关注。在JDK 8中,字符串拼接的实现有了进一步的优化,这使得开发者在编写代码时有了更多的选择。本文将深入探讨JDK 8中的字符串拼接方式,以及其...

    JavaScript组合拼接字符串的效率对比测试

    JavaScript中字符串拼接效率对比测试的知识点涵盖了很多方面,包括JavaScript字符串拼接的传统方法、优化后的数组拼接方法、各种主流浏览器在字符串拼接方面的性能表现,以及这些性能差异对实际开发的影响。...

    一个高效率的js脚本字符串构建类库函数

    JavaScript StringBuilder 是一个专门为JavaScript开发的高效字符串操作类库,它主要解决了JavaScript中字符串拼接效率低下的问题。在JavaScript中,使用加号"+"来连接多个字符串时,每次操作都会创建新的字符串对象...

    详解.NET中string与StringBuilder在字符串拼接功能上的比较

    它们在处理字符串拼接时有着显著的性能差异,了解这些差异对于编写高效的代码至关重要。 首先,`string`对象在.NET中是不可变的,这意味着一旦创建,就不能更改其内容。每次对`string`对象进行拼接操作时,都会创建...

Global site tag (gtag.js) - Google Analytics