字符串拼接性能优化

var htmlString = ‘<div class="container">‘ + ‘<ul id="news-list">‘,
     for (var i = 0; i < NEWS.length; i++) {
          htmlString += ‘<li><a href="‘+NEWS[i].LINK +‘">‘ + NEWS[i].TITLE + ‘</a></li>‘;
     }
 htmlString += ‘</ul></div>‘;

改为数组,再将其通过join()方法改为字符串,因为字符串一旦创建,它的值不能改变,要改变某变量保存的字符串,首先得销毁原来的字符串,然后再用新的字符串填充变量,因此字符串拼接速度慢,效率低。

var htmlString = ‘<div class="container">‘ + ‘<ul id="news-list">‘,    elem,
    array=[],
     for (var i = 0,len=NEWS.length;i<len;i++) {
          elem= ‘<li><a href="‘+NEWS[i].LINK +‘">‘ + NEWS[i].TITLE + ‘</a></li>‘;
          array.push(elem);
     }
  array.join("");
 htmlString += ‘</ul></div>‘;

再举个例子:请指出以下代码的性能问题,并优化。

 var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。";
     info +="拍拍网于2005年9月12日上线发布,";
     info +="2006年3月13日宣布正式运营,";
     info +="是目前国内第二大电子商务平台。";
    info=info.split(",");
     for(var i=0; i<info.length; i++)
      {
         alert(info[i]);
      } 

字符串大的话,则拼接时间会长,效率低。再一个就是优化循环体,避免每次循环都计算一次数组的长度,因此将数组长度付给变量,只在第一次循环时计算。

var array=[],
    info;
array.push("腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。");
array.push("拍拍网于2005年9月12日上线发布,");
array.push("2006年3月13日宣布正式运营,");
array.push("是目前国内第二大电子商务平台。");
info=array.join("").split(",");  //数组到字符串再在逗号分隔符处分割成数组
for(var i=0,len=info.length;i<len;i++)
   {
      alert(info[i]);
   } 
时间: 2024-10-11 22:45:02

字符串拼接性能优化的相关文章

Java字符串之性能优化

基础类型转化成String 在程序中你可能时常会需要将别的类型转化成String,有时候可能是一些基础类型的值.在拼接字符串的时候,如果你有两个或者多个基础类型的值需要放到前面,你需要显式的将第一个值转化成String(不然的话像System.out.println(1+'a')会输出98,而不是"1a").当然了,有一组String.valueOf方法可以完成这个(或者是基础类型对应的包装类的方法),不过如果有更好的方法能少敲点代码的话,谁还会愿意这么写呢? 在基础类型前面拼接上一个

C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能

本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文涉及程序为.NET Core 2.0控制台应用程序. 一.常量字符串拼接 private static void TestPerformance(Action action, int times) { Stopwatch sw = new Stopwatch(); sw.Start(); for(i

优化字符串拼接之二:非托管内存应用

前(tu)言(cao) 之前一篇虽然也强调了,可是回复中还是有人来挑刺,并且还有人支持?! #5楼2013-08-26 21:39 楼主看下StringBuilder的makeroom方法吧.微软官方的,有些东西不是人家做不到,而是人家考虑的更多. 所以我不得不再次强调一下,系统是考虑的很多,但是我不需要这么多功能可以吗?我只希望他快一点,(对我来说)更好用一点. 就好比,如果你只想拧螺丝,你会选择瑞士军刀,还是选择螺丝刀?! 你见过多少维修师傅带着一把瑞士军刀去你家修东西的? 当维修师傅拿出一

【转】Java 5种字符串拼接方式性能比较。

最近写一个东东,可能会考虑到字符串拼接,想了几种方法,但对性能未知,于是用Junit写了个单元测试. 代码如下: import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class TestS

java性能优化之字符串

Java程序性能优化之代码优化 字符串部分: 关于这一部分我们需要了解String StringBuffer StringBulider String是一个不可变字符序列,针对常量池优化,类是final的 String的不变性是指字符串对象一旦创建便不可改变. 常量池的优化是指若两个字符串拥有相同的字符串序列,则在常量池只有一份拷贝. String类是final的则意味着不能对String类进行继承或者修改 String实际上是由三部分组成char数组和偏移量以及字符串长度组成 实际上字符sub

字符串拼接与性能分析

原文出处:http://www.venishjoe.net/2009/11/java-string-concatenation-and.html转自:http://coolshell.cn/articles/2235.html 概述:本文主要研究的是JAVA的字符串拼接的性能,原文中的测试代码在功能上并不等价,导致concat的测试意义不大.不过原作者在评论栏给了新的concat结果,如果有兴趣的同学建议自己修改代码测试. 在JAVA中拼接两个字符串的最简便的方式就是使用操作符”+”了.如果你用

asp优化:改进 ASP 应用程序中的字符串处理性能

摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据.本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面要优于其他方法.本文假定您已经具备一定的 ASP 和 Visual Basic 编程方面的知识. 简介 编写 ASP 页面时,开发人员实际上是创建一个格式化的文本流,通过 ASP 提供的 Response 对象写入 Web 客户端.创建此文本流的方法有多种,而您选择的方法将对 We

Java性能优化之String字符串优化

字符串是软件开发中最重要的对象之一.通常,字符串对象在内存中是占据了最大的空间块,因此如何高效地处理字符串,必将是提高整体性能的关键所在. 1.字符串对象及其特点 Java中八大基本数据类型没有String类型,因为String类型是Java对char数组的进一步封装. String类的实现主要由三部分组成:char数组,offset偏移量,String的长度. String类型有三个基本特点: 不变性 不变性是指String对象一旦生成,则不能再对它进行改变. 不变性的作用在于当一个对象需要被

java字符串格式化性能对比String.format/StringBuilder/+拼接

String.format由于每次都有生成一个Formatter对象,因此速度会比较慢,在大数据量需要格式化处理的时候,避免使用String.format进行格式化,相反使用StringUtils.leftPad,StringUtils.rightPad,然后使用+一次性(注:分为多个独立的+性能会受到较大影响)或者StringBuilder进行拼接能够极大地提升性能.LZ在一个海量数据导出场景中,改写后(其中包括很多BigDecimal及计算)导出格式化性能提升了大约2/3.纯粹的字符串格式化