#1 Data Analytics Program in India
₹2,499₹1,499Enroll Now
3 min read
Question 46 of 62medium

How to measure performance in Node.js?

Using Performance Hooks for timing.

What You'll Learn

  • Performance measurement
  • Timing operations
  • Performance observers

Performance API

code.jsJavaScript
const { performance, PerformanceObserver } = require('perf_hooks');

// Simple timing
const start = performance.now();
// ... operation
const end = performance.now();
console.log(`Took ${end - start}ms`);

Performance Marks & Measures

code.jsJavaScript
const { performance } = require('perf_hooks');

performance.mark('start');

// ... operation
await someAsyncOperation();

performance.mark('end');

performance.measure('My Operation', 'start', 'end');

const [measure] = performance.getEntriesByName('My Operation');
console.log(`Duration: ${measure.duration}ms`);

// Clear marks
performance.clearMarks();
performance.clearMeasures();

Performance Observer

code.jsJavaScript
const { PerformanceObserver } = require('perf_hooks');

const obs = new PerformanceObserver((list) => {
  const entries = list.getEntries();
  entries.forEach((entry) => {
    console.log(`${entry.name}: ${entry.duration}ms`);
  });
});

obs.observe({ entryTypes: ['measure', 'function'] });

// Wrap function for automatic timing
const { performance } = require('perf_hooks');

const timedFunction = performance.timerify(myFunction);
timedFunction(); // Automatically measured

Histogram

code.jsJavaScript
const { monitorEventLoopDelay } = require('perf_hooks');

const h = monitorEventLoopDelay({ resolution: 20 });
h.enable();

setTimeout(() => {
  console.log(`Min: ${h.min}ns`);
  console.log(`Max: ${h.max}ns`);
  console.log(`Mean: ${h.mean}ns`);
  h.disable();
}, 5000);