Function analyzeTimeDurations
analyze Time Durations( durations: number [] ) : { count: number ; durations: number [] ; filtered: number [] ; filteredCount: number ; filteredStats: { iqr: number ; max: number ; mean: number ; median: number ; min: number ; p95: number ; q1: number ; q3: number ; std: number ; } ; fullStats: { iqr: number ; max: number ; mean: number ; median: number ; min: number ; p95: number ; q1: number ; q3: number ; std: number ; } ; }
Returns { count: number ; durations: number [] ; filtered: number [] ; filteredCount: number ; filteredStats: { iqr: number ; max: number ; mean: number ; median: number ; min: number ; p95: number ; q1: number ; q3: number ; std: number ; } ; fullStats: { iqr: number ; max: number ; mean: number ; median: number ; min: number ; p95: number ; q1: number ; q3: number ; std: number ; } ; }
count: number
durations: number []
filtered: number []
filtered Count: number
filtered Stats: { iqr: number ; max: number ; mean: number ; median: number ; min: number ; p95: number ; q1: number ; q3: number ; std: number ; }
iqr: number
max: number
mean: number
median: number
min: number
p95: number
q1: number
q3: number
std: number
full Stats: { iqr: number ; max: number ; mean: number ; median: number ; min: number ; p95: number ; q1: number ; q3: number ; std: number ; }
iqr: number
max: number
mean: number
median: number
min: number
p95: number
q1: number
q3: number
std: number
Analyzes an array of measured time durations and returns useful statistics both for the full dataset and for outlier-filtered data.
This is intended for benchmarking or performance-profiling scenarios where you collect many individual operation durations (e.g., using
performance.now()).What each metric means
count: Number of measured durations.durations: Sorted list of all input durations (ascending).filtered: Sorted list of durations excluding statistical outliers using the IQR rule.filteredCount: Number of durations remaining after outlier removal.For both full and filtered stats:
min: The shortest measured duration.max: The longest measured duration.mean: The arithmetic average time.median: The middle value when sorted (50th percentile). More stable than mean.std: Standard deviation. Measures how much the durations vary.p95: 95th percentile. 95% of values are below this value. Useful as a near-worst-case indicator.q1: 25th percentile (lower quartile).q3: 75th percentile (upper quartile).iqr: Interquartile range (Q3 − Q1). Measures the spread of the middle 50% of values.Outlier filtering (IQR rule)
Outliers are removed if they fall outside: [Q1 − 1.5×IQR, Q3 + 1.5×IQR]
This avoids skewing results when a single operation takes unusually long.
How to collect durations
Important:
Date.now(); it has only millisecond resolution.Returns
An object containing sorted durations, filtered durations, and statistics for both full and filtered datasets.
Throws
If the input array is empty.