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)