我有jQuery函数;例如A(),B()和C() 每个函数都会对不同的站点进行一些Ajax调用。
我想计算运行每个函数所花费的时间(我想以毫秒为单位) 我只想在长循环和不同的现代浏览器(Safari / Chrome / IE10 / Mozilla)中测试我的代码。 更具体地说,我想计算从每个Ajax请求中获取回调所花费的时间(这也是函数结束的时间吗?) 我怎么能实现这个目标?
答案 0 :(得分:18)
您可以从日期对象中获取以毫秒为单位的时间。
var start = new Date().getTime();
A();
function AJAXSuccessFunction() {
console.log(new Date().getTime() - start);
}
答案 1 :(得分:6)
//set start point anywhere you want
var start = new Date();
//when done,
var end = new Date();
//to profile milliseconds, just do
var duration = end - start;
答案 2 :(得分:3)
Nowadays,您可以使用perfomance.now()
。此函数使用navigationStart
属性作为开始时间;
此属性必须在用户代理之后立即返回时间 完成提示卸载以前的文档。如果没有 在以前的文档中,此属性必须返回相同的值 fetchStart。
至于现实生活中的代码示例:
// Store the start
var start = performance.now();
// Do some operation
for(var i=0; i < 1000; i++) {
var j = i*i;
}
// Profile the milliseconds it took to do the job
var duration = (performance.now() - start);
答案 3 :(得分:2)
我不知道这是否是您正在寻找的内容,但如果您想知道处理功能所花费的时间,您可以使用Chrome的DevTools(或类似的工具)其他浏览器)检查。
转到要检查的页面,打开DevTools,转到Profiles
标签,然后选择“收集Javascript CPU配置文件&#39;并点击Start
开始录制。
刷新页面,完成加载后,Stop
录制。您将获得已执行的函数列表以及处理它所花费的时间。
希望有所帮助。
答案 4 :(得分:1)
您现在可以使用,console.time('fn1')和console.timeEnd('fn1')
因此,如果您正在调用doAwesomeStuff()之类的函数,并希望看到执行它需要多长时间,
console.time('fn1')
doAwesomeStuff()
console.timeEnd('fn1')
fn1 - 可以是任何东西。
答案 5 :(得分:0)
您可以更精确地使用performance.now()
// Take a timestamp at the beginning.
var start = performance.now();
// Execute the code being timed.
console.log("your function is here")
// Take a final timestamp.
var end = performance.now();
// Calculate the time taken and output the result in the console
console.log('doTasks took ' + (end - start) + ' milliseconds to execute.');
&#13;