我可以很容易地做到这一点:
console.time('mytimer');
doSomeWork();
console.timeEnd('mytimer');
但是可以在多个函数中计算时间。我需要在全局变量中定义脚本的开始时间。然后在多个函数内部,我将写出自时间开始以来经过了多少毫秒。并写下函数的名称:这样:
console.time('mytimer');
doSomeWork() {
// console.log(difference between now and "mytimer"s start time)
// console.log(name of the function: doSomeWork())
};
doSomeWork2() {
// console.log(difference between now and "mytimer"s start time)
// console.log(name of the function: doSomeWork2())
};
doSomeWork3() {
// console.log(difference between now and "mytimer"s start time)
// console.log(name of the function: doSomeWork3())
};
console.timeEnd('mytimer');
我会在Chrome 26+中使用它来解决调试问题,因此使用浏览器相关函数(例如:arguments.callee.name)不是问题。
编辑:清除我的问题。
这有效:
console.time('myTimer1');
console.timeEnd('myTimer1');
这不起作用:
console.time('myTimer2');
console.time('myTimer2');
编辑:当然可以写太多的计时器并检查每个计时器的时间。但是我需要知道自从javascript代码在每一圈开始以来经过的时间。
答案 0 :(得分:0)
如果您需要特定功能的时间,我想您知道可以通过console.time()和console.timeEnd()的参数来实现它们。有关它的更多信息https://developers.google.com/chrome-developer-tools/docs/console/。
根据我对您的问题的理解,您需要进行基准分析。
我已经定义了以下方法,您可以使用它们以毫秒为单位获得单圈时间。
更新:使用performance api作为此类用例的推荐API。
console.lapStart = function(name){
window[name] = window[name] || {};
window[name].globalTimer = performance.now();
}
console.showLap = function(name){
currTime = performance.now();
var diff = currTime - window[name].globalTimer;
console.log(arguments.callee.name, diff);
}
console.lapEnd = function(name){
currTime = performance.now();
var diff = currTime - window[name].globalTimer;
console.log(arguments.callee.name, diff);
delete window[name]
}
请注意,这是粗略的代码,应该只在dev中运行。否则,它可能会在全球物体上留下不良痕迹,并在嘴上留下不好的味道。
答案 1 :(得分:0)
有一个解决方案,这是生活水平。好像已经在chrome和主要浏览器以及nodejs上使用了
https://developer.mozilla.org/en-US/docs/Web/API/Console/timeLog
console.time("answer time");
alert("Click to continue");
console.timeLog("answer time");
alert("Do a bunch of other stuff...");
console.timeEnd("answer time");
The