runSuite method

Future<BenchmarkSuiteResult> runSuite({
  1. required String suiteName,
  2. required Map<String, Future<void> Function(int iteration)> tasks,
  3. int iterations = 20,
  4. int warmupIterations = 3,
})

顺序运行一组基准测试 / Runs a group of benchmarks sequentially.

Implementation

Future<BenchmarkSuiteResult> runSuite({
  required String suiteName,
  required Map<String, Future<void> Function(int iteration)> tasks,
  int iterations = 20,
  int warmupIterations = 3,
}) async {
  final suiteWatch = Stopwatch()..start();
  final results = <BenchmarkResult>[];
  for (final entry in tasks.entries) {
    results.add(
      await run(
        testName: entry.key,
        task: entry.value,
        iterations: iterations,
        warmupIterations: warmupIterations,
      ),
    );
  }
  suiteWatch.stop();

  return BenchmarkSuiteResult(
    suiteName: suiteName,
    results: results,
    totalDuration: suiteWatch.elapsed,
    timestamp: DateTime.now(),
  );
}