Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中使用类似于Python timeit的时间函数_Javascript_Performance_Function - Fatal编程技术网

如何在JavaScript中使用类似于Python timeit的时间函数

如何在JavaScript中使用类似于Python timeit的时间函数,javascript,performance,function,Javascript,Performance,Function,在JavaScript中测量函数执行时间的最佳方法是什么?最好与Python timeit类似。我还没有对它进行真正的deap搜索,但就我搜索的结果而言,我什么也没找到。最简单的方法是,在函数开始时获取时间,在函数结束时获取时间,并从另一个函数中减去一个函数(在使用Date.parse以毫秒为单位转换它们之后)。这当然是一个幼稚的解决方案,但仍然有效。没有与timeit.py等效的内置模块,但是您可以自己轻松地为代码的执行计时。您应该使用performance.now()而不是Date.now(

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

我还没有对它进行真正的deap搜索,但就我搜索的结果而言,我什么也没找到。最简单的方法是,在函数开始时获取时间,在函数结束时获取时间,并从另一个函数中减去一个函数(在使用Date.parse以毫秒为单位转换它们之后)。这当然是一个幼稚的解决方案,但仍然有效。

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

从MDN文档:

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

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

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;
}
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);
不是真的,有,但不是你想要的,怎么样?
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);