Perfect State Manager should:
- Batch changes
- Collapse doubled dependencies
- Reuse moved dependencies
- Skip eval which result isn't needed
- Skip eval when dependencies isn't changed
- Eval dependents only when actually changed
- Apply side effects only once on state change
@mweststrate#mobx is too wasteful of memory. I think this is the reason why it is not very fast. You can steal this idea to dramatically reduce the number of memory allocations: mol.hyoo.ru/#!section=artiβ¦
2. If you turn off the tests, your solution shows the worst performance.
@BenLesh@_ojkwon@ncjamieson#rxjs causes heavy handlers and side-effects many times over due to the complex dependency graph, which leads to significant performance degradation. Is it possible to solve this problem without adding asynchrony point via debounce(0) to each stream?
@zero__bias@_sergeysova@sashahoroshih#effector promises maximum performance. However, in this test it recalculates the entire graph per event. This gives one of the worst results. Twice as bad as even Redux+Reselect, which suffer from the same problem.