compareExecutionTimes static method

Future<(Duration, Duration)> compareExecutionTimes({
  1. required FutureOr<void> taskA(),
  2. required FutureOr<void> taskB(),
})

Compares the execution durations of two tasks, accommodating both synchronous and asynchronous operations.

This method returns a tuple of the two durations.

Examples:

var result = await TimeUtils.compareExecutionTimes(
  () {
    // Task 1
    for (var i = 0; i < 1000000; i++) {}
  },
  () async {
    // Task 2
    await Future.delayed(Duration(seconds: 2));
  },
);
print('Task 1 took ${result.item1}, Task 2 took ${result.item2}');

Implementation

static Future<(Duration, Duration)> compareExecutionTimes({
  required FutureOr<void> Function() taskA,
  required FutureOr<void> Function() taskB,
}) async {
  final duration1 = await executionDuration(taskA);
  final duration2 = await executionDuration(taskB);
  return (duration1, duration2);
}