warmup method

({int iter, int ticks}) warmup(
  1. void f(), {
  2. Duration duration = const Duration(milliseconds: 200),
  3. int preRuns = 3,
})

Measures the runtime of f for duration and reports the average runtime expressed as clock ticks.

Implementation

({int ticks, int iter}) warmup(
  void Function() f, {
  Duration duration = const Duration(milliseconds: 200),
  int preRuns = 3,
}) {
  var ticks = microsecondsToTicks(duration.inMicroseconds);
  var iter = 0;
  for (var i = 0; i < preRuns; i++) {
    f();
  }
  reset();
  start();
  do {
    f();
    iter++;
  } while (elapsedTicks < ticks);
  return (ticks: elapsedTicks ~/ iter, iter: iter);
}