compareExecutionTimes static method
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);
}