Array.joinと+による文字列の速度差
理由がない限り、Array.join("") による文字列連結は使わないほうがいいみたい - latest log
速度差で、+の方が速いという結果を示していますが、これは、おそらく速度を測定する項目が
違うのかなぁと、
id:uupaaがやっている方法だと
- +で連結
- 文字列を連結する
だけど
- joinで連結
- 配列の構築
- 配列の連結
と比較している項目が違っている。
正確に"文字列連結"だけの速度を測定するのであれば
console.time('str'); for(var j = 0; j < 1000; j++){ var str = ''; for(var i = 0; i < 100; i++){ str += i; } } console.timeEnd('str'); var r = []; for(var i = 0; i < 100; i++){ r.push(i); } console.time('array'); for(var j = 0; j < 1000; j++){ r.join() } console.timeEnd('array');
として配列の構築は外に出してやるべきかと
ちなみに上記の結果だと
join: 87msecに対して+は468msecとやっぱりjoinが速い
もちろん、結局どこかでArray.pushは発生するので、そういうもろもろをかんがみると、+の方がいいのかもしれないんですけどね。