summarizeSamples static method

DetailedBenchmarkStats summarizeSamples(
  1. List<double> samplesMs, {
  2. required int warmupIterations,
})

Summarize measured samples with p50/p95/stddev.

Implementation

static DetailedBenchmarkStats summarizeSamples(
  List<double> samplesMs, {
  required int warmupIterations,
}) {
  final copied = List<double>.from(samplesMs)..sort();
  final measured = samplesMs.length;
  final avg = measured == 0
      ? 0.0
      : samplesMs.reduce((a, b) => a + b) / measured;
  final min = copied.isEmpty ? 0.0 : copied.first;
  final max = copied.isEmpty ? 0.0 : copied.last;
  final p50 = copied.isEmpty ? 0.0 : _percentileFromSorted(copied, 0.50);
  final p95 = copied.isEmpty ? 0.0 : _percentileFromSorted(copied, 0.95);
  final stdDev = _stdDev(samplesMs, avg);

  return DetailedBenchmarkStats(
    warmupIterations: warmupIterations,
    measuredIterations: measured,
    samplesMs: samplesMs,
    avgMs: avg,
    minMs: min,
    maxMs: max,
    p50Ms: p50,
    p95Ms: p95,
    stdDevMs: stdDev,
  );
}