Swift iOS macOS 巨量 字符串拼接,速度优化
使用字符串输出文件时遇到的一个问题:一个数组中的数据如果太多,比如有 8-9万条
数据,需要拼接起来再保存到文件
有两种方式实现字符串拼接,这两种方式在数据量小的时候感觉不出来,但像这种数量比较大的就会有很大差别
strs = [ "里面是8万条小字符串数据" ]
strs.forEach { (item) in
// 方法一
outStr = outStr + item
// 方法二
outStr.append(item)
}
方法一
outStr = outStr + item
这种方式是取原有拼接好的字符串 outStr
变量,去加另一个变量,也就是说在操作的时候需要把原有变量 outStr
复制一份再加,本来这个 outStr
变量就已经非常巨大了。所以速度就会非常慢。
8 万条的数据在这里需要处理 4 秒的时间
方法二
outStr.append(item)
这种方式是直接在原有字符串的基础上从后面添加内容,不会复制原有变量 outStr
,所以速度会非常快,几乎感觉不到耗时。
结论
在巨量字符串拼接的时候一定要使用 String.append(String)
这个方法,不要使用直接数据相加的形式