JavaScript、with ベンチマーク

withとローカル変数への代入のベンチマーク

サンプル

ms

ms

ms


コード


var A={};
A.B={}; A.B.C=1; // ローカル変数に代入して参照。 function F1(n){ var c=A.B.C; if(c) ; }; // withを使って参照。 function F2(n){ with(A.B){ if(C) ; } }; // 直上のオブジェクトをローカル変数に代入して参照。 function F3(n){ var b=A.B; if(b.C) ; }; A.B.D=1; // ローカル変数に代入して参照。グローバル変数に代入 function F4(n){ var c=A.B.C; if(c) A.B.D=4; }; // withを使って参照、代入。 function F5(n){ with(A.B){ if(C) D=5; } }; // 直上のオブジェクトをローカル変数に代入して参照。ローカル変数から代入。 function F6(n){ var b=A.B; if(b.C) b.D=6; }; var COUNT=10000; function bench1(){ output('out1', benchthis(COUNT, F1) ); } function bench2(){ output('out2', benchthis(COUNT, F2) ); } function bench3(){ output('out3', benchthis(COUNT, F3) ); } function bench4(){ output('out1', benchthis(COUNT, F4) ); } function bench5(){ output('out2', benchthis(COUNT, F5) ); } function bench6(){ output('out3', benchthis(COUNT, F6) ); }