簡単な計測用の関数が作りたかった
const loop = _=> loop(); // stack-overflow
const one = _ => 1;
one(loop()); // -> "too much recursion"
one(_=> loop()); // -> 1
ということで、ラムダに入れれば遅延評価(普段は正格評価)なので
const time = (process, n=1) =>
{
let total = 0.0;
for (let i = 0; i < n; ++i)
{
const start = window.performance.now();
process();
const elapsed = window.performance.now() - start;
total += elapsed / n;
}
console.log(total);
};
const fib = (i, n = i) => i > 0 ? fib(i - 1, n + i - 1) : n;
time(_=> fib(2000), 100);
呼ばれた回数だけ実行し平均値を計測