feat(benchmark_di): add resolve phases, eager/lazy scenarios, and adapter parity

This commit is contained in:
Klim
2026-04-22 20:33:07 +03:00
parent 59234b44c2
commit 4077ed8469
13 changed files with 383 additions and 257 deletions

View File

@@ -25,7 +25,11 @@ class UniversalChainAsyncBenchmark<TContainer> extends AsyncBenchmarkBase {
bindingMode: mode,
scenario: UniversalScenario.asyncChain,
));
}
Future<void> prewarm() async {
await di.waitForAsyncReady();
await run();
}
@override

View File

@@ -50,7 +50,14 @@ class UniversalChainBenchmark<TContainer> extends BenchmarkBase {
}
@override
void teardown() => _di.teardown();
void teardown() {
_childDi?.teardown();
_di.teardown();
}
void prewarm() {
run();
}
@override
void run() {
@@ -59,11 +66,7 @@ class UniversalChainBenchmark<TContainer> extends BenchmarkBase {
_di.resolve<UniversalService>();
break;
case UniversalScenario.named:
if (_di.runtimeType.toString().contains('GetItAdapter')) {
_di.resolve<UniversalService>(named: 'impl2');
} else {
_di.resolve<UniversalService>(named: 'impl2');
}
_di.resolve<UniversalService>(named: 'impl2');
break;
case UniversalScenario.chain:
final serviceName = '${chainCount}_$nestingDepth';