You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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".
Current bottlenecks:
TDBCursor>>#traceFor:
(viaTDBCursor>>#childContextsFor:
, 68%) - forego generators inTDBTrace>>#withAllDescendants
, use binary depth-first searchTDBTrace>>#traceAtTime:
(13%) - inline binary search? don't use#associations
.Further optimization potential:
#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 thePluggableTreeMorph
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)truncationLimit
in snapshot inspectors (requires upstream contribution)The text was updated successfully, but these errors were encountered: