Skip to main content

Perf Hooks

Performance Monitoring Functions​

Node.js performance measurement utilities with nanosecond precision. Track execution times, event loop delays, and runtime metrics with automatic error handling. Designed for both real-time monitoring and benchmarking scenarios.

These are some basic but refined functions made using built-in node:perf_hooks. Please visit node:perf_hooks for more detailed documentation and usage.

Now​

Gets high-resolution millisecond timestamp.

Returns:​

Number - Current timestamp in ms, -1 on error.

Basic Usage:​

// Import the function
const { perf_hooks } = require("@nexoracle/utils"); // CJS
import { perf_hooks } from "@nexoracle/utils"; // ESM

console.log(perf_hooks.now()); // Output: 139.9343

Get Time Origin​

Gets Node.js process start timestamp.

Returns:​

Number - Unix timestamp in ms.

Basic Usage:​

// Import the function
const { perf_hooks } = require("@nexoracle/utils"); // CJS
import { perf_hooks } from "@nexoracle/utils"; // ESM

console.log(`Node.js started at: ${new Date(perf_hooks.getTimeOrigin()).toISOString()}`);
// Output: Node.js started at: 2025-03-25T14:42:48.856Z

Measure Execution Time​

Measures function execution duration.

Parameters:​

  • fn (Function) - Function to measure.
  • args (Any) - Arguments to pass to function.

Returns:​

Number - Execution time of function in ms.

Basic Usage:​

// Import the function
const { perf_hooks } = require("@nexoracle/utils"); // CJS
import { perf_hooks } from "@nexoracle/utils"; // ESM

const hashTime = perf_hooks.measureExecutionTime(() => {
fetch("https://api.nexoracle.com");
});
console.log(`fetching took ${hashTime.toFixed(3)}ms`); // Output: fetching took 156.442ms

Monitor Event Loop Delay​

Tracks event loop latency with histogram statistics.

Returns:​

{Object} - Histogram with enable/disable methods.

Basic Example:​

// Import the function
const { perf_hooks } = require("@nexoracle/utils"); // CJS
import { perf_hooks } from "@nexoracle/utils"; // ESM

const histogram = perf_hooks.monitorEventLoopDelay();
histogram.enable();

setTimeout(() => {
console.log("Event Loop Delay Metrics:");
console.log(`Min: ${histogram.min}ms`);
console.log(`Max: ${histogram.max}ms`);
console.log(`Mean: ${histogram.mean.toFixed(2)}ms`);
histogram.disable();
}, 3000);

// Output:
/*
Event Loop Delay Metrics:
Min: 9420800ms
Max: 37584895ms
Mean: 16475102.24ms
*/

Node Performance Timing​

Gets Node.js bootstrap timings.

Returns:​

{Object} - Node.js performance timing object.

Basic Example:​

// Import the function
const { perf_hooks } = require("@nexoracle/utils"); // CJS
import { perf_hooks } from "@nexoracle/utils"; // ESM

const timings = perf_hooks.getNodePerformanceTiming();
console.log("Node.js Performance Timings:");
console.log(`- Startup: ${timings.bootstrapComplete}ms`);
console.log(`- V8 initialized: ${timings.v8Start}ms`);
console.log(`- Event loop started: ${timings.loopStart}ms`);
// Output:

/*
Node.js Performance Timings:
- Startup: 41.23440000042319ms
- V8 initialized: 10.038199998438358ms
- Event loop started: -1ms
*/