JScriptのメソッドの速度/unshift(2)

unshiftは、
Arrayの長さが大きいほうが当然時間がかかるが、
短くなるとメソッド呼び出しのコストが大きくなる。
unshiftとメソッドを呼び出さない方法で、
Arrayの頭に要素を追加する時間を比較しよう。


メソッドを呼び出さないコードは次のよう:


function test2() {
for(var i = 0; i < m; i++) {
var a = [ ];
for(var j = 0; j < n; j++) {
for(var k = a.length - 1; k >= 0; k--)
a[k+1] = a[k];
a[0] = 1;
a;
}
}
}

n個までの追加をm=1e6/n^2回繰り返して、
かかった時間の10回平均を調べる。
これに、Arrayの生成等のコスト3.1μsを引いて、
差分を取ってk個目の追加にかかるコストを比較する。


(12/3改定。バラツキがでにくいような実験にした)

どうやら4個くらいまでなら自作したほうが速いらしい。