Skip to main content

usePerformanceMark

Description and use case

usePerformanceMark creates named marks and measures duration between them. Use it for precise timing of fetches, rendering paths, and user interactions.

API signature

function usePerformanceMark(namespace?: string): UsePerformanceMarkReturn

Parameters

NameTypeRequiredDescription
namespacestringNoOptional prefix for mark/measure names to avoid collisions.

Return value

FieldTypeDescription
mark(markName: string) => voidCreates a performance mark.
measure(measureName: string, startMark: string, endMark?: string) => PerformanceMeasureResult | nullMeasures duration and returns result or null.
clearMarks(markName?: string) => voidClears one or all marks.
clearMeasures(measureName?: string) => voidClears one or all measures.
getEntries() => PerformanceMeasureResult[]Returns collected measure entries for reporting.

Live interactive demo (StackBlitz)

This demo uses an embedded StackBlitz sandbox. Load it inline or open it in a new tab.

Open demo in StackBlitz

Code example

import {usePerformanceMark} from 'react-perf-hooks';

export function ProductList() {
const {mark, measure} = usePerformanceMark('ProductList');

async function loadProducts() {
mark('fetch-start');
await fetch('/api/products');
mark('fetch-end');

const result = measure('fetch-duration', 'fetch-start', 'fetch-end');
console.log(result?.duration);
}

return <button onClick={loadProducts}>Load</button>;
}

Companion article