как измерить время выполнения асинхронного кода в javascript

Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
24 декабря 2024

В основном, для этой задачи используют встроенные методы performance.now() или console.time(), а также стандартные методы работы с промисами.

Использование performance.now()

Метод performance.now() возвращает время в миллисекундах.

async function asyncFunction() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('Done');
    }, 2000);
  });
}

(async () => {
  const start = performance.now();

  await asyncFunction(); // Выполнение асинхронной функции

  const end = performance.now();
  console.log(`Время выполнения: ${end - start} миллисекунд`);
})();

Использование console.time() и console.timeEnd()

async function asyncFunction() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('Done');
    }, 2000);
  });
}

(async () => {
  console.time('Async Function Timer');

  await asyncFunction(); // Выполнение асинхронной функции

  console.timeEnd('Async Function Timer');
})();

Использование Promise

Наконец, мы можем использовать промисы, чтобы автоматически измерять время выполнения.

function timePromise(promise) {
  const start = performance.now();

  return promise.then(result => {
    const end = performance.now();
    console.log(`Время выполнения: ${end - start} миллисекунд`);
    return result;
  });
}

async function asyncFunction() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('Done');
    }, 2000);
  });
}

(async () => {
  await timePromise(asyncFunction()); // Используем обертку для замеров
})();
0 0
Познакомьтесь с основами JavaScript бесплатно