-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
use microtick outside of events #3879
Conversation
📊 Tachometer Benchmark ResultsSummaryduration
usedJSHeapSize
Results02_replace1k
duration
usedJSHeapSize
run-warmup-0
run-warmup-1
run-warmup-2
run-warmup-3
run-warmup-4
run-final
03_update10th1k_x16
duration
usedJSHeapSize
07_create10k
duration
usedJSHeapSize
filter_list
duration
usedJSHeapSize
hydrate1k
duration
usedJSHeapSize
many_updates
duration
usedJSHeapSize
text_update
duration
usedJSHeapSize
todo
duration
usedJSHeapSize
|
Size Change: +317 B (0%) Total Size: 53.9 kB
ℹ️ View Unchanged
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting this together!
Co-authored-by: andrewiggins <[email protected]>
b0a2915
to
46bbf78
Compare
I took a look at the pref regressions in the 02_replace1k benchmark locally and I believe it is caused by a bug in our benchmark. In the change from microtask to setTimeout scheduling in #3608 some assumptions our benchmarks made about when work would be done changed (it previously assumed microtask, etc.). So some measures that previously measured JS execution now just measured the time it takes to scheduled work. As such the change back in this PR isn't comparing apples (preact-master) and oranges (preact-local). In preact-master, the In preact-local (this branch), the I suspect this behavior might change depending on how the browser decides to do scheduling of the |
Fixes #3775
Fixes #3724
When we are in events we need setTimeout to deal with how events bubble, we want the events to complete before we start our rendering process. This however isn't needed when we are dealing with internal updates coming from effects/...