如何计算函数在jQuery中花费的时间?

我有jQuery函数; 例如A(),B()和C()每个函数都会对不同的站点进行一些Ajax调用。

我想计算运行每个函数需要多少时间(我想以毫秒为单位)我只想在长循环和不同的现代浏览器(Safari / Chrome / IE10 / Mozilla)中测试我的代码。 更具体地说,我想计算从每个Ajax请求中获取回调所花费的时间(这也是函数结束的时间吗?)我如何实现这一目标?

您可以从日期对象获得以毫秒为单位的时间。

var start = new Date().getTime(); A(); function AJAXSuccessFunction() { console.log(new Date().getTime() - start); } 
 //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; 

如今 ,你可以使用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); 

我不知道这是否是您正在寻找的,但如果您想知道处理function花费了多少时间,您可以使用Chrome的DevTools(或其他浏览器中的类似工具)来检查。

转到要检查的页面,打开DevTools,转到“ Profiles选项卡,然后选择“收集Javascript CPU配置文件”,然后单击“ Start以开始录制。

刷新页面,完成加载后, Stop录制。 您将获得已执行的函数列表以及处理它所花费的时间。

Dev Tools中Profiles选项卡的示例屏幕截图

希望有所帮助。

您现在可以使用console.time(’fn1’)和console.timeEnd(’fn1’)

所以,如果你正在调用像doAwesomeStuff()这样的函数,并希望看到执行它需要多少时间,

 console.time('fn1') doAwesomeStuff() console.timeEnd('fn1') 

fn1 – 可以是任何东西。

你可以更精确地使用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.');