JS拼接字符串的效率

JS拼接字符串的方式,

1、最常見的是+=;

2、還可以先將字符串轉化爲數組,然後調用Join實現字符串拼接

arr.push(str);

return arr.join("");

效率分爲運行速度和內存消耗問題,網上查了相關資料,結論就是join在字符串字節很大時(百萬級以上),用join會明顯快於用+=實現的字符串拼接(),用+=耗時大概時10秒,用join大概是幾百毫秒,當字節數很少時,兩種方法耗時差距可以忽略,而且用join還需要開數組變量,耗內存,所以這時候推薦用+=;

----------運行速度-------------

博主試着跑了下,十萬級別的字節數,+=耗時幾乎爲0,join耗時爲7毫秒左右;百萬級別的字節數,+=耗時在75毫秒上下波動,join耗時在68毫秒上下波動,兩者差距可以忽略;千萬級別的字節,兩者耗時差距在200毫秒內波動,+=耗時在1000毫秒左右,join耗時在800毫秒左右波動;億級的字節數,超過字符最大上限,報錯了。

故當字節數低於百萬級別的時候,推薦用+=實現字符串拼接,當字節數爲千萬級別的時候,如果對運行速度有要求,可以採取join實現拼接。如果對運行速度要求較高,百萬級別及以上的字符串拼接推薦用join實現。

至於別的博文裏面爲什麼百萬級的字節數跑出來的效果,+=耗時10秒以上,可能是當時(5年前)的CPU性能較差造成的,現在CPU的性能已經足夠完成百萬級字節數的拼接,所以博主跑出來的只有1秒,快了10倍。

------------字符串內存------------

既然不同的拼接方式耗時不同,那麼這中間的過程肯定是不一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章