kairoBench function

Future<void> kairoBench(
  1. ReactiveFramework framework
)

Implementation

Future<void> kairoBench(ReactiveFramework framework) async {
  for (final (testCase, name) in cases) {
    final iter = framework.withBuild(() {
      final iter = testCase(framework);
      return iter;
    });

    // warm up
    KairoState state = iter();

    final timingResult = await fastestTest(10, () {
      for (int i = 0; i < 1000; i++) {
        final itemState = iter();
        if (state == KairoState.success) {
          state = itemState;
        }
      }
      return null;
    });

    logPerfResult(PerfRowStrings(
      framework: framework.name,
      test: '$name (${state.name})',
      time: timingResult.timing.time.toString(),
    ));
  }
}