如何在JavaScript中计算与Python timeit类似的函数

cam*_*enl 9 javascript performance function

测量JavaScript中函数执行时间的最佳方法是什么?最好类似于Python timeit.

bhs*_*cer 13

没有与timeit.py等效的内置模块,但您可以自己轻松地执行代码.您应该使用performance.now()而不是Date.now(),因为它更准确.

来自MDN文档:

performance.now()方法返回一个以毫秒为单位的DOMHighResTimeStamp,精确到千分之五毫秒(5微秒)

var start = performance.now();

//do your things

var end = performance.now();
var duration = end - start;
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用它来构建自己的计时库,如下所示:

function TimeIt() {
    var self = this;

    function howLong(iterations, testFunction) {
        var results = [];
        var total = 0;
        for (var i = 0; i < iterations; i++) {
            var start = performance.now();
            testFunction();
            var end = performance.now();
            var duration = end - start;
            results.push(duration);
            total += duration;
        }
        var result = {
                results : results,
                total : total,
                avg : total / results.length
        }
        return result;
    }
    self.howLong = howLong;
}
Run Code Online (Sandbox Code Playgroud)

你会用这个:

var timeit = new TimeIt();

var foo = function() {
//do some things
};

var result = timeit.howLong(1000, foo);
console.log("avg: " + result.avg);
console.log("total: " + result.total);
Run Code Online (Sandbox Code Playgroud)