runBenchmark method

Future<NiceBenchmarkSummary> runBenchmark({
  1. required String name,
  2. required NiceBenchmarkWidgetBuilder builder,
  3. Map<String, dynamic> metadata = const {},
})

Run a benchmark for a widget builder.

Implementation

Future<NiceBenchmarkSummary> runBenchmark({
  required String name,
  required NiceBenchmarkWidgetBuilder builder,
  Map<String, dynamic> metadata = const {},
}) async {
  final results = <NiceBenchmarkResult>[];

  // Warmup runs (not recorded)
  for (var i = 0; i < warmupRuns; i++) {
    await _measureOnce(name, builder, i, metadata);
  }

  // Measured runs
  for (var i = 0; i < measureRuns; i++) {
    final result = await _measureOnce(name, builder, i, metadata);
    results.add(result);
    onProgress?.call(i + 1, measureRuns);
  }

  final summary = NiceBenchmarkSummary(name: name, results: results);
  _results[name] = summary;
  return summary;
}