как измерить время выполнения асинхронного кода в javascript — Q&A Хекслет
2026-02-26 19:07 Diff

В основном, для этой задачи используют встроенные методы 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()); // Используем обертку для замеров })();