howdylikes

Google Developersってわかりづらいよね

JavaScriptでArrayオブジェクトの文字列結合の速度検証

よく見るコードだとjoin使っているのが多いですがパフォーマンス的にはどうなんだ?というのを試してみる。
ggっても出てくると思うけど勉強がてらということで。

前提条件

検証パターンは以下の5つでそれぞれ100万回

  • for文使って+演算子
  • Array.forEachで+演算子
  • Array.reduceで+演算子
  • String.concat
  • Array.join

順番は実装が嫌?な順

サンプルコード

結果

type 速度
for 157.259ms
Array.forEach 215.781ms
Array.reduce 163.422ms
String.concat 265.373ms
Array.join 713.505ms

やっぱりforが速いですね、ただこんな実装絶対したくない。
このレベルでfunctionとか作りたくないですしね。
ワンライナーで書きたいので、基本はArray.joinでちょっと処理が重なるときはString.concatぐらいがいいのかなぁ。

余談

jsfiddleと比べてChromeのデベロッパーコンソール上で実行すると異様にconcatが遅くなるのはなんででしょうかね。