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

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