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

Performance: throttled status update loop impacts performance on large notebooks #2978

Closed
fonsp opened this issue Aug 5, 2024 · 0 comments · Fixed by #2981 or #2979
Closed

Performance: throttled status update loop impacts performance on large notebooks #2978

fonsp opened this issue Aug 5, 2024 · 0 comments · Fixed by #2981 or #2979
Labels
backend Concerning the julia server and runtime performance

Comments

@fonsp
Copy link
Owner

fonsp commented Aug 5, 2024

In large notebooks, the throttled update loop from the status tree, i.e.:

notebook.status_tree.update_listener_ref[] = first(throttled(1.0 / 20) do
# TODO: this throttle should be trailing
Pluto.send_notebook_changes!(Pluto.ClientRequest(; session, notebook))
end)

Can slow down the notebook. When the notebook is large, and you are moving sliders, this can halve the update speed.

Ideas:

  • During reactive run, share the throttled update with the new one.
  • Throttle rate should adapt to the time it takes to update clients.
  • It also looks like there is a bug in the throttle code: the throttled code runs in batches of 2...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend Concerning the julia server and runtime performance
Projects
None yet
1 participant