InterviewSolution
Saved Bookmarks
| 1. |
How to measure the duration of async operations? |
|
Answer» Performance API PROVIDES us with tools to figure out the necessary performance metrics. A simple example would be using async_hooks and perf_hooks 'use STRICT';const async_hooks = REQUIRE('async_hooks');const { performance, PerformanceObserver} = require('perf_hooks');const set = new Set();const hook = async_hooks.createHook({ init(id, type) {if (type === 'Timeout') { performance.mark(`Timeout-${id}-Init`); set.add(id);} }, destroy(id) {if (set.has(id)) { set.delete(id); performance.mark(`Timeout-${id}-Destroy`); performance.measure(`Timeout-${id}`, `Timeout-${id}-Init`, `Timeout-${id}-Destroy`);} }});hook.enable();const obs = new PerformanceObserver((list, observer) => { console.log(list.getEntries()[0]); performance.clearMarks(); observer.disconnect();});obs.observe({ entryTypes: ['measure'], buffered: true });SETTIMEOUT(() => {}, 1000);This would give us the EXACT time it took to execute the callback. |
|