twonly-app-dependencies/x25519/test/benchmark/rate_benchmark.dart
2025-12-07 16:10:41 +01:00

42 lines
948 B
Dart

import 'package:benchmark_harness/benchmark_harness.dart';
abstract class RateBenchmark extends BenchmarkBase {
RateBenchmark(String name, {this.runLength = 5000})
: super(name, emitter: RateEmitter()) {
(emitter as RateEmitter).benchmark = this;
}
final int runLength;
int _iterations = 0;
@override
ScoreEmitter get emitter => super.emitter;
@override
void exercise() {
_iterations = 0;
var watch = Stopwatch()..start();
while (watch.elapsedMilliseconds < runLength) {
run();
_iterations++;
}
}
}
class RateEmitter implements ScoreEmitter {
late RateBenchmark benchmark;
int get iterations => benchmark._iterations;
@override
void emit(String testName, double value) {
final ms = value / 1000;
final date = DateTime.now().toString().split('.')[0];
print('| $date | '
'$testName | '
'$iterations iterations | '
'${ms.toInt()} ms');
}
}