どんな言語でもよく使う文字列結合。
+演算子を使って結合する方法と、配列に入れてからjoinする方法
どちらが速いのか実験してみました。
どの値も、実行するたびに上下しますが大体こんな感じでした。
この結果を見ると、joinを使ったほうが速そうです。
ただ、pushを使っているとブラウザによっては時間がかかるようなので
index指定を使ったほうが安心ですね。
+演算子を使って結合する方法と、配列に入れてからjoinする方法
どちらが速いのか実験してみました。
var n = 1000000 , s = 'abc' , str = '' , arr = [] , arr2 = [] , i; console.log('試行回数 :' + n); console.time(' + '); for (i = 0; i < n; i++) { // +演算子で文字列結合 str += s; } console.timeEnd(' + '); console.time(' join '); for (i = 0; i < n; i++) { // 配列に追加(push) arr.push(s); } // 文字列化 arr.join(''); console.timeEnd(' join '); console.time(' index '); for (i = 0; i < n; i++) { // 配列に追加(index指定) arr[i] = s; } // 文字列化 arr.join(''); console.timeEnd(' index ');結果
(n=1000000)の場合 | FireFox(38) | Chrome(43) | IE(11) |
---|---|---|---|
+演算子 | 7~140ms | 80ms | 400ms |
push/join | 30ms | 230ms | 450~500ms |
index/join | 22ms | 40ms | 280ms |
(n=10)の場合 | FireFox(38) | Chrome(43) | IE(11) |
---|---|---|---|
+演算子 | 0.40ms | 0.10ms | 0.10~0.15ms |
push/join | 0.30ms | 0.05ms | 0.10~0.15ms |
index/join | 0.20ms | 0.03ms | 0.10ms |
どの値も、実行するたびに上下しますが大体こんな感じでした。
この結果を見ると、joinを使ったほうが速そうです。
ただ、pushを使っているとブラウザによっては時間がかかるようなので
index指定を使ったほうが安心ですね。
0 件のコメント:
コメントを投稿