+=とjoinの速度比較
JavaScript文字列処理は"+="が十分高速、Safariもベター | エンタープライズ | マイナビニュースにびっくりしたので、最近のFirefox(Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1a2pre) Gecko/2008080108 Minefield/3.1a2pre)でベンチマークを行なった。+=は確かに早い。
console.time("String.concat"); var s = ""; for (var i = 0;i < 10000;i++) s += String.concat( "aaa", "bbb", "cccc", "dddd" ); console.timeEnd("String.concat"); console.time("Array.prototype.join"); var s = ""; for (var i = 0;i < 10000;i++) s += ["aaa", "bbb", "ccc", "ddd"].join(""); console.timeEnd("Array.prototype.join"); console.time("String.concat.apply"); var s = ""; for (var i = 0;i < 10000;i++) s += String.concat.apply("", [ "aaa", "bbb", "ccc", "ddd" ]); console.timeEnd("String.concat.apply"); console.time("+= 1"); var s = ""; for (var i = 0;i < 10000;i++) s += "aaa" + "bbb" + "ccc" + "ddd"; console.timeEnd("+= 1"); console.time("+= 2") var s = ""; for (var i = 0;i < 10000;i++) { s += "aaa"; s += "bbb"; s += "ccc"; s += "ddd"; } console.timeEnd("+= 2")
String.concat: 55ms
Array.prototype.join: 78ms
String.concat.apply: 143ms
+= 1: 14ms
+= 2: 32ms