美文网首页
2018-06-01 字符串拼接性能问题

2018-06-01 字符串拼接性能问题

作者: 忙于未来的民工 | 来源:发表于2018-06-07 18:05 被阅读0次

var str1 = 'hello'

var subStr = 'world'

str1 += subStr

首先看下拼接字符串的整个过程:

1:创建str1

2:创建subStr

3:创建存储结果的字符串

4:将str1复制到存储结果的字符串

5:将subStr复制到存储结果的字符串

6:改变存储结果的字符串的指向,指向str1

每次拼接字符串时都会走这几步,如果拼接少看不出什么,如果拼接的字符串很多就会严重影响性能

可用如下用法解决这个问题:

var arr = []

arr[0] = 'hello'

arr[1] = 'world'

str = arr.join()

这个拼接的过程走的是如下几步:

1:创建存储结果的字符串

2:将数组中的字符串复制到存储结果的字符串中

这种方案可以很好的提高字符串拼接性能

可以将这种方法封装下:

function StringBuffer () {

this._string = new Array()

if (typeof StringBuffer._initialize === 'underfined') {

StringBuffer.prototype.append = function (str) {

this._string.push(str)

}

StringBuffer.prototype.toString = function () {

return this._string.join()

}

StringBuffer._initialize = true

}

}

相关文章

  • go语言string之Buffer与Builder

    操作字符串离不开字符串的拼接,但是Go中string是只读类型,大量字符串的拼接会造成性能问题。 字符串拼接的方式...

  • 2018-06-01 字符串拼接性能问题

    var str1 = 'hello' var subStr = 'world' str1 += subStr 首先...

  • 日志、字符串拼接

    关于字符串拼接效率: 单词调用字符串拼接性能 + > strings.Join > bytes.Buffer > ...

  • 字符串

    一、字符串格式化 String.format()的使用 二、字符串拼接 字符串拼接性能比较 三、日志打印效率 使用...

  • C# string 拼接操作性能测试

    一、C# 拼接字符串的几种方式和性能 对于少量固定的字符串拼接,如string s= "a" + "b" + "c...

  • 同事如此使用StringBuilder,我给他提了一个Bug

    字符串的拼接在项目中使用的非常频繁,但稍不留意往往又会造成一些性能问题。 字符串的拼接在项目中使用的非常频繁,但稍...

  • Java字符串拼接性能问题

    问题:如下2个方法 fun1 和 fun2,都是在做同样的事情,手动拼接15000个A,哪个效率高? 有编程经验的...

  • StringBuilder性能优化

    在String字符串拼接性能优化博客中我已经介绍过了String "+" 拼接背后的StringBuilder实现...

  • 关于字符串

    字符串有不可变的特点,这样会带来一个问题:当我们大量拼接字符串时,会有性能问题。 字符方法:1、字符方法 2、截取...

  • golang 性能优化之累加哈希

    很多时候性能问题总是发生在一些不起眼的地方。最近做一个性能问题分析的时候发现,一个函数里面使用由于字符串拼接产生的...

网友评论

      本文标题:2018-06-01 字符串拼接性能问题

      本文链接:https://www.haomeiwen.com/subject/jsjhsftx.html