続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
だそうです。確かにコピーしていそうです。
この説がなんとなく妥当そうです。