measureAsync method

Future<({int iter, int ticks})> measureAsync(
  1. Future<void> f(),
  2. int ticks
)

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

Implementation

Future<({int ticks, int iter})> measureAsync(
    Future<void> Function() f, int ticks) async {
  var iter = 0;
  reset();
  start();
  do {
    await f();
    iter++;
  } while (elapsedTicks < ticks);
  return (ticks: elapsedTicks ~/ iter, iter: iter);
}