Sergey Penkovsky
4d5f96705f
Merge pull request #17 from pese-git/impr/complex_benchmark_impr
...
impr: BENCHMARK - complex benchmark improvements.
2025-08-07 15:01:27 +03:00
yarashevich_kv
d23d06f98e
impr: BENCHMARK - fix for CherrypickDIAdapter.
2025-08-07 14:55:07 +03:00
Sergey Penkovsky
e1371f7038
docs: update architecture diagram in README to show adapter-centric universalRegistration pattern
2025-08-07 14:37:34 +03:00
Sergey Penkovsky
75db42428c
docs: update README (en/ru) to reflect adapter-based universalRegistration pattern
...
- Show type-safe DIAdapter-centric registration for all scenarios
- Document new way to add scenarios/DI via universalRegistration<S extends Enum>
- Remove legacy function-based registration/manual switching from guide
- Provide examples for Dart and CLI usage with all DI adapters
2025-08-07 14:23:06 +03:00
Sergey Penkovsky
5336c22550
test: validate all benchmark scenarios and stress runs for all DI adapters
...
- Successfully executed all scenarios (register, chain, asyncChain, named, override, etc) for Cherrypick, GetIt, and Riverpod
- Verified correct integration of fully generic DIAdapter & universalRegistration architecture
- Ensured type-safety in all setup/registration flows after complete refactor
- All benchmarks run and pass under stress/load params for each DI adapter
2025-08-07 14:18:16 +03:00
Sergey Penkovsky
56bdb3946e
refactor: full generic DIAdapter workflow & universalRegistration abstraction
...
- Made UniversalChainBenchmark and UniversalChainAsyncBenchmark fully generic with strong typing for DIAdapter<TContainer>
- Moved all universalRegistration logic inside adapters; removed global function and typedef
- Replaced dynamic/object-based registration with type-safe generic contracts end-to-end
- Updated CLI and usage: all DI and scenarios are invoked via type-safe generics
- Fixed all analysis errors, Riverpod async/future usages, and imports for full Dart 3 compatibility
- All benchmarks fully pass for Cherrypick, GetIt, and Riverpod adapters
2025-08-07 14:11:29 +03:00
Sergey Penkovsky
54446868e4
refactor: unify DIAdapter with generics, ensure type-safety & scalability in benchmark_di
...
- Refactor DIAdapter to generic abstract class; align interfaces for Cherrypick, GetIt, Riverpod.
- Remove all dynamic/object usage from dependency registration and bench scenarios.
- Universal getUniversalRegistration function now fully type-safe for all DIs.
- Fix teardown and lifecycle for RiverpodAdapter to prevent disposed Container errors.
- Update CLI and benchmark entry points; validated all scenarios and stress modes for each DI adapter.
2025-08-07 13:45:16 +03:00
Sergey Penkovsky
590b876cf4
feat: add Riverpod adapter, async-chain support via FutureProvider, full DI CLI/bench integration, benchmarking, ascii performance graphs in markdown
2025-08-07 13:12:56 +03:00
Sergey Penkovsky
f7a7ea4384
feat: full di benchmarks report (en/ru) + get_it scope+override support fix; fresh results for all scenarios and settings
2025-08-07 12:11:16 +03:00
Sergey Penkovsky
6b6564f8c3
refactor: rename benchmark_cherrypick to benchmark_di, update paths, pubspec, imports, and documentation
2025-08-07 10:34:50 +03:00
Sergey Penkovsky
da79f1e546
docs: update README.md and README.ru.md for universal DI benchmarks, scenarios, CLI options, and architecture diagram
2025-08-07 10:16:14 +03:00
Sergey Penkovsky
64f33b20a7
fix: universal benchmarks and DI registration; proper named binding; robust override support for cherrypick and get_it; improved CLI args
2025-08-07 09:15:26 +03:00
Sergey Penkovsky
d523a5f261
refactor: simplify DIAdapter interface with a single registration callback; update benchmarks and cherrypick adapter accordingly
2025-08-07 08:28:23 +03:00
Sergey Penkovsky
b72dec9944
Обновлен README.ru.md: новые современные сценарии, параметры CLI, форматы отчётов, инструкция по расширению
2025-08-06 23:22:05 +03:00
Sergey Penkovsky
352442e52d
Update README.md with current benchmark scenarios, CLI options, and report formats (EN)
2025-08-06 23:19:37 +03:00
Sergey Penkovsky
134fc5207a
Add English documentation comments to all benchmark_cherrypick source files (adapters, scenarios, CLI, reporters, runner)
2025-08-06 23:15:28 +03:00
Sergey Penkovsky
01d82e1cd3
feat(report): add legend to MarkdownReport output with explanation of columns
2025-08-06 22:53:33 +03:00
Sergey Penkovsky
1e6375f5ae
refactor(report): round numeric values to 2 decimal places in MarkdownReport output
2025-08-06 22:41:08 +03:00
Sergey Penkovsky
3da71674d4
chore: fix current status, all implemented features and refactors
2025-08-06 22:35:49 +03:00
Sergey Penkovsky
ea39b9d0e1
feat(report): align MarkdownReport columns for readable ASCII/markdown output
2025-08-06 22:31:41 +03:00
Sergey Penkovsky
09ed186544
refactor(cli): modularize CLI — extract parser, runner, report and main logic into dedicated files
2025-08-06 22:19:13 +03:00
Sergey Penkovsky
3ce21f55e4
refactor(report): extract ReportGenerator abstraction for pretty/csv/json; simplify report rendering in main
2025-08-06 22:02:41 +03:00
Sergey Penkovsky
bae940f374
refactor(main): extract BenchmarkRunner and BenchmarkResult, simplify main loop, unify sync/async cases
2025-08-06 21:53:13 +03:00
Sergey Penkovsky
0fc1907173
chore(cleanup): remove unused legacy benchmarks and scenario files
2025-08-06 18:36:11 +03:00
Sergey Penkovsky
4d41266135
refactor(benchmark): clean up UniversalChainBenchmark, remove async logic, keep only sync scenario logic
2025-08-06 18:26:05 +03:00
Sergey Penkovsky
3a75bd5b28
feat(benchmark): add UniversalScenario enum and extend UniversalChainModule to support chain, register, named, override, async scenarios
2025-08-06 17:01:55 +03:00
Sergey Penkovsky
b27a7df161
refactor(structure): move benchmarks, scenarios, adapters, utils to dedicated folders; update imports/project layout
2025-08-06 16:21:31 +03:00
Sergey Penkovsky
553dbb6539
refactor(benchmarks): introduce DIAdapter abstraction, migrate all scenarios to use DIAdapter
2025-08-06 14:44:12 +03:00
Sergey Penkovsky
18905a068d
docs(benchmarks): document memory_diff_kb, delta_peak_kb, peak_rss_kb in README files (EN+RU)
2025-08-06 14:07:44 +03:00
Sergey Penkovsky
6928daa50e
docs(benchmarks): update README files with stability options, repeat/warmup params, stat fields, and usage examples
2025-08-06 13:48:51 +03:00
Sergey Penkovsky
7f488f873e
docs(benchmarks): update README files with new CLI, matrix run, output formats, and usage instructions (EN+RU)
2025-08-06 13:35:39 +03:00
Sergey Penkovsky
926bbf15f4
refactor(benchmarks): unify benchmark structure, enable CLI parameterization, run matrix, add CSV/JSON/pretty output
...
- All benchmarks now use a unified base mixin for setup/teardown (BenchmarkWithScope).
- Added args package support: CLI flags for choosing benchmarks, chain counts, nesting depths, output format.
- Support for running benchmarks in matrix mode (multiple parameter sets).
- Machine-readable output: csv, json, pretty-table.
- Loop and naming lint fixes, unused imports removed.
2025-08-06 13:30:30 +03:00
yarashevich_kv
a5ef0dc437
impr: BENCHMARK - complex benchmark improvements.
2025-08-06 09:41:17 +03:00
Sergey Penkovsky
05cfca5977
docs(perf): clarify Map-based resolver optimization applies since v3.0.0 in all docs
2025-08-06 08:29:00 +03:00
Sergey Penkovsky
52a55219ab
docs: update EN/RU quick start and tutorial with Fast Map-based lookup section; clarify performance benefit in README
2025-08-05 19:41:24 +03:00
Sergey Penkovsky
ffff33c744
perf(scope): speed up dependency lookup with Map-based binding resolver index
...
Optimize resolve()/tryResolve() to use O(1) Map-based lookup by type and name instead of iterating through all modules and bindings. Behavior of factory, singleton, instance, and named bindings is preserved.
2025-08-05 17:20:35 +03:00
Sergey Penkovsky
a4573ce8ef
Add package topics to all pubspec.yaml files
2025-08-05 06:46:26 +03:00
Sergey Penkovsky
62868477fb
chore(release): publish packages
...
- cherrypick@3.0.0-dev.2
- cherrypick_flutter@1.1.3-dev.2
cherrypick_flutter-v1.1.3-dev.2
cherrypick-v3.0.0-dev.2
2025-08-04 08:54:37 +03:00
Sergey Penkovsky
a889cf0d40
Resolved all Dart analyzer warnings across multiple files
2025-08-01 11:20:23 +03:00
Sergey Penkovsky
123ed6ce02
Merge pull request #13 from pese-git/impr/binding_resolver
...
Refactored Binding by extracting BindingResolver to improve code structure and simplify the Binding class.
2025-08-01 11:01:30 +03:00
Sergey Penkovsky
7cc0743d94
Update benchmark results in README.ru.md with latest timings (RU version)
2025-08-01 08:48:27 +03:00
Sergey Penkovsky
63dae76ea9
Update benchmark results in README.md with latest timings
2025-08-01 08:47:55 +03:00
Sergey Penkovsky
a74c34876d
feat(binding): add deprecated proxy async methods for backward compatibility and highlight transition to modern API
2025-08-01 08:44:31 +03:00
yarashevich_kv
9f0a8a84aa
impr: fix after rebase.
2025-08-01 08:44:31 +03:00
yarashevich_kv
2cba7f2675
impr: add binding resolver class.
2025-08-01 08:44:31 +03:00
Sergey Penkovsky
1682ed9c08
Update benchmarks, lock files, and related documentation
2025-08-01 08:40:10 +03:00
Sergey Penkovsky
882ee92000
Update benchmark results in README.md with fresh timings
2025-08-01 08:39:12 +03:00
Sergey Penkovsky
9a3576f76d
chore(release): publish packages
...
- cherrypick@3.0.0-dev.1
- cherrypick_flutter@1.1.3-dev.1
2025-08-01 08:31:50 +03:00
Sergey Penkovsky
f7cc86ea66
docs: add quick guide for circular dependency detection to README
2025-08-01 08:31:50 +03:00
Sergey Penkovsky
1c8e38b0c9
chore(release): publish packages
...
- cherrypick@3.0.0-dev.0
- cherrypick_flutter@1.1.3-dev.0
2025-08-01 08:31:50 +03:00