UNPKG

@callstack/reassure-measure

Version:

Performance measurement library for React and React Native

34 lines 1.13 kB
import { config } from './config'; import { getCurrentTime, processRunResults } from './measure-helpers'; import { showFlagsOutputIfNeeded, writeTestStats } from './output'; export async function measureFunction(fn, options) { const stats = await measureFunctionInternal(fn, options); if (options?.writeFile !== false) { await writeTestStats(stats, 'function'); } return stats; } async function measureFunctionInternal(fn, options) { const runs = options?.runs ?? config.runs; const warmupRuns = options?.warmupRuns ?? config.warmupRuns; const removeOutliers = options?.removeOutliers ?? config.removeOutliers; showFlagsOutputIfNeeded(); const runResults = []; for (let i = 0; i < runs + warmupRuns; i += 1) { await options?.beforeEach?.(); const timeStart = getCurrentTime(); fn(); const timeEnd = getCurrentTime(); await options?.afterEach?.(); const duration = timeEnd - timeStart; runResults.push({ duration, count: 1 }); } return processRunResults(runResults, { warmupRuns, removeOutliers }); } //# sourceMappingURL=measure-function.js.map