Как подсчитать, сколько времени занимает функция в jQuery? - PullRequest
9 голосов
/ 06 сентября 2011

У меня есть функции jQuery;например, A (), B () и C () Каждая функция выполняет несколько вызовов Ajax для разных сайтов.

Я хочу рассчитать, сколько времени требуется для запуска каждой функции (я полагаю, в миллисекундах), я просто хочупроверить мой код в длинных циклах и в различных современных браузерах (Safari / Chrome / IE10 / Mozilla).Более конкретно, я хочу подсчитать, сколько времени требуется для выполнения обратного вызова из каждого Ajax-запроса (это также время, когда функция заканчивается правильно?) Как я могу этого достичь?

Ответы [ 6 ]

18 голосов
/ 06 сентября 2011

Вы можете получить время в миллисекундах от объекта даты.

var start = new Date().getTime();

A();

function AJAXSuccessFunction() {
    console.log(new Date().getTime() - start);
}
6 голосов
/ 06 сентября 2011
//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;
3 голосов
/ 23 января 2015

В настоящее время , вы можете использовать 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);
2 голосов
/ 01 июня 2016

Я не знаю, ищите ли вы это, но если вы хотите узнать, сколько времени было потрачено на обработку функции, вы можете использовать DevTools Chrome (или аналогичные инструменты в других браузерах), чтобы проверить это.

Перейдите на страницу, которую вы хотите изучить, откройте DevTools, перейдите на вкладку Profiles и выберите «Собрать профиль Javascript CPU» и нажмите Start, чтобы начать запись.когда он завершит загрузку, Stop запись.Вы получите список выполненных функций и время, потраченное на их обработку.

Sample Screenshot of Profiles Tab in Dev Tools

Надеюсь, это поможет.

1 голос
/ 09 октября 2015

Теперь вы можете использовать console.time ('fn1') и console.timeEnd ('fn1')

Так что, если вы вызываете функцию типа doAwesomeStuff () и хотите узнать, сколько времени требуется для ее выполнения, просто сделайте,

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

fn1 - может быть что угодно.

0 голосов
/ 19 мая 2016

Вы можете использовать более точно 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.');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...