measureFor static method

Future<double> measureFor(
  1. Future<void> f(),
  2. int minimumMillis
)

Measures the score for this benchmark by executing it repeatedly until time minimum has been reached.

Implementation

static Future<double> measureFor(
    Future<void> Function() f, int minimumMillis) async {
  final minimumMicros = minimumMillis * 1000;
  final watch = Stopwatch()..start();
  var iter = 0;
  var elapsed = 0;
  while (elapsed < minimumMicros) {
    await f();
    elapsed = watch.elapsedMicroseconds;
    iter++;
  }
  return elapsed / iter;
}