refactor(benchmark): clean up UniversalChainBenchmark, remove async logic, keep only sync scenario logic

This commit is contained in:
Sergey Penkovsky
2025-08-06 18:26:05 +03:00
parent 3a75bd5b28
commit 4d41266135
4 changed files with 360 additions and 128 deletions

View File

@@ -0,0 +1,41 @@
import 'package:benchmark_harness/benchmark_harness.dart';
import 'package:benchmark_cherrypick/di_adapters/di_adapter.dart';
import 'package:benchmark_cherrypick/scenarios/universal_chain_module.dart';
import 'package:benchmark_cherrypick/scenarios/universal_service.dart';
class UniversalChainAsyncBenchmark extends AsyncBenchmarkBase {
final DIAdapter di;
final int chainCount;
final int nestingDepth;
final UniversalBindingMode mode;
UniversalChainAsyncBenchmark(
this.di, {
this.chainCount = 1,
this.nestingDepth = 3,
this.mode = UniversalBindingMode.asyncStrategy,
}) : super('UniversalAsync: asyncChain/$mode CD=$chainCount/$nestingDepth');
@override
Future<void> setup() async {
di.setupModules([
UniversalChainModule(
chainCount: chainCount,
nestingDepth: nestingDepth,
bindingMode: mode,
scenario: UniversalScenario.asyncChain,
)
]);
}
@override
Future<void> teardown() async {
di.teardown();
}
@override
Future<void> run() async {
final serviceName = '${chainCount}_$nestingDepth';
await di.resolveAsync<UniversalService>(named: serviceName);
}
}