Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize navigation #17

Open
2 of 7 tasks
Tracked by #15
LinqLover opened this issue Jan 23, 2022 · 0 comments
Open
2 of 7 tasks
Tracked by #15

Optimize navigation #17

LinqLover opened this issue Jan 23, 2022 · 0 comments
Labels
engineering Technical change to the machinery

Comments

@LinqLover
Copy link
Collaborator

LinqLover commented Jan 23, 2022

Current bottlenecks:

  • scrolling/tree display: TDBCursor>>#traceFor: (via TDBCursor>>#childContextsFor:, 68%) - forego generators in TDBTrace>>#withAllDescendants, use binary depth-first search
  • stepping: TDBTrace>>#traceAtTime: (13%) - inline binary search? don't use #associations.

Further optimization potential:

  • We are still rebuilding the tree after every step (#wrapRoots), which helps us fulfill all invariants, but is terribly slow. Updating the trace iteratively would be hard with respect to the current limitations of the PluggableTreeMorph API, automatic expansion of relevant nodes, and coroutines (Support coroutines #14).- [ ] use non-linear search algorithms for stepping operations (i.e., binary search with unknown size)
  • All stepping operations could be optimized by rolling out an exponential search mechanism. For this, we would need to define an absolute criterion for "whether a timeIndex belongs to the right step".
  • optimize inspector updates (could be possible with the help of Epic: State queries #21)
  • not yet optimized: stepBack
  • Reduce truncationLimit in snapshot inspectors (requires upstream contribution)
@LinqLover LinqLover added the engineering Technical change to the machinery label Jan 23, 2022
This was referenced Jan 23, 2022
LinqLover added a commit that referenced this issue Jan 26, 2022
Many detailed optimizations that address #16 and #17. Contributes to #15.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
engineering Technical change to the machinery
Projects
None yet
Development

No branches or pull requests

1 participant