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)
這個方法,不要使用直接數據相加的形式