続JavaScriptの結合演算の処理速度

id:GimiteさんがHotRubyがC Rubyより速い本当の理由は? - monthly gimiteのエントリでJavaScriptの高速化の別の方法を考えられてました。
シンプルな上に使いやすそうです。目から鱗

id:Gimiteさんの方法だと、

c=a+b; e=a+d;

としたときにコピーが発生するはずです。Firefoxでそうなるかどうか見てみました。

//巨大な文字列を作っておく
sum="";
for(i=0;i<50000-1;i++){sum+=i;}
//ベンチマーク開始
t1=new Date().getTime(); 
sum2=""; 
for (i = 0; i<50000;i++) { sum2 = sum + i; }
t2=new Date().getTime(); 
alert((t2-t1)/1000+"sec")

実行すると

46.844sec

だそうです。確かにコピーしていそうです。

この説がなんとなく妥当そうです。

これ以上はFirefoxソースコードを直接見た方が速そうなので、これくらいで打ち止めにしておきます。