feat: remove resize debounce, and move to batch system for rerendering #89
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: None I think
jank, if we remove the debounce, then the jank is caused by browser performance rather than a hard-coded implementation)
requestAnimationFrame
so that we're doing all recalculation at once instead of in individual callbacks.Profiling
Attached two performance profiles (with 4x CPU throttling enabled, as recommended). "resize" is a performance log for actually resizing the buttons the annotations are associated with. "move" is a peformance log for making the buttons move by changing the browser size.
move-profile.json
resize-profile.json
Testing
Didn't super thoroughly test this because I wanted to know if it was likely to get merged before I invested more time (since I know it's a big change). Let me know what you think and I can try to find time to hammer it more!
Base branch
I know I'm branched off my other branch atm haha. Just didn't want to duplicate changes and conflict with myself, assuming that other one gets merged.