JavaScript で関数の実行時間を計測するには、関数の実行前に取得したタイムスタンプと、実行後に取得したタイムスタンプの差を取ればよいです。多くの人は new Date().getTime() でタイムスタンプを取得しますが、関数の実行時間が1ミリ秒未満の場合は、タイムスタンプの最小単位がミリ秒までなので計算できません。そこでここでは、Window.Performance API の使用をおすすめします。これはページの読み込み開始からの経過ミリ秒数を提供し、精度は1000分の1ミリ秒までです。
以下のサンプルコードでは say_hi を100回実行し、その100回の平均実行時間(ミリ秒)を計算しています。
function timeit(func) {
var sum = 0;
for(var i = 0; i < 100; i++) {
var start = performance.now();
func()
var end = performance.now();
sum += (end - start)/100;
}
return sum;
}
function say_hi() {
console.log("Hi");
}
console.log(timeit(say_hi))