Removed unnecessary calls to _recompute_all_models() to speed up adding roots#11739
Removed unnecessary calls to _recompute_all_models() to speed up adding roots#11739bryevdv merged 5 commits intobokeh:branch-3.0from EfremBraun:branch-3.0
Conversation
|
Ah, I see the issue. The tests directly access BokehJS's Let me think of a more elegant way to address this... |
…recompute_all_models(), and that is only worked around in special situations.
|
This is a bit of a janky fix...in order to avoid the calls to It'd be nice if JS had a context manager similar to Python such that I could wrap the |
|
@EfremBraun Thanks for posting a PR, it's easier for me to digest proposed changes by just seeing them as a diff. Now that I have, why don't we back up a step. The purpose of the push/pop freeze functions is itself to prevent over-(re-)computation. Why don't we use that facility as intended? There is a loop for adding roots, why not try to fence the original push/pop functions around the entire loop? That should be sufficient to prevent a re-computation on on the individual roots, since the freeze count would only reach zero after the loop. |
|
FYI I was proposing const doc = new Document({resolver})
doc._push_all_models_freeze()
for (const id of root_ids) {
const root = references.get(id)
if (root != null) {
doc.add_root(root as Model)
}
}
}
doc._pop_all_models_freeze() // freeze count only reaches zero herewhich I think should do what you are after? |
Oh, that works too. And yes, it looks a lot more elegant. I'll make the change now. |
|
Regardless though, it is going to fail the one BokehJS-CI test on Windows, where the bbox bounds sometimes get changed a little...I'm not so sure why that would be. Any idea for what might be happening and how it could be fixed? |
|
I don't offhand the first thing I would suggest is to just make sure you are up to date (rebased) on the latest |
I was up-to-date. So it'd have to be something else... |
|
It's possible there was a chrome update cc @IuryPiva any ideas about baseline failures only on windows? |
|
@EfremBraun the Windows test issue is fixed now. Can you please rebase and force push? My typical way to do so (sorry if you're already familiar with this):
|
|
Done, though I used:
|
|
Thanks for the PR @EfremBraun ! |
…ng roots (#11739) * Removed unnecessary calls to _recompute_all_models() to speed up adding roots * Corrected last commit so that general calls to add_root() still call recompute_all_models(), and that is only worked around in special situations. * Wrapping calls to add_root() within push_all_models_freeze() * Made last commit more elegant by getting rid of loop Co-authored-by: Efrem Braun <efrem.braun@gmail.comm>
…ng roots (#11739) * Removed unnecessary calls to _recompute_all_models() to speed up adding roots * Corrected last commit so that general calls to add_root() still call recompute_all_models(), and that is only worked around in special situations. * Wrapping calls to add_root() within push_all_models_freeze() * Made last commit more elegant by getting rid of loop Co-authored-by: Efrem Braun <efrem.braun@gmail.comm>
* Update CONTRIBUTING.MD (#11957) * track modified files in release build more carefully (#11972) * Remove katex example (#11894) * Remove katex example * Remove test based on katex example * Revert "Remove test based on katex example" This reverts commit f0df5ed. * Cleaner white space/indentation in templates (#11866) * Enable block trimming, add initial test * Add test for script start/stops * Trim comment blocks in templates * Remove hard-coded white space in templates * Minimize manual trimming/indenting * Clean up indentation, standardize CSS/JS * Simplify new template test * Expand new test to cover multiple resource modes * Reduce whitespace around title and scripts * isort, lint test_templates * Combine JS/CSS resource defs in test_templates * Reduce indent of plot script * Consistent indentation in template itself * Update template in docs * 11726 Updated links to visjs.org Graph3d examples (#11728) * Add sphinx_copybutton (#11993) * Add sphinx_copybutton * Update CI environments * Move sphinx-copybutton to pip dependencies * Fix typo in tools.py (#11935) perfrom -> perform * Fixed a few typos and changed wordings (#11698) * Fix issue probably-meant-fstring found at https://codereview.doctor (#12097) * add functools.wraps to _needs_document_lock_wrapper (#11976) dask.distributed intermittently logs: `RuntimeWarning: coroutine '_needs_document_lock.<locals>._needs_document_lock_wrapper' was never awaited` with this wrapper it will be possible to see which method wasn't awaited * Md files checking and updating (#11903) * Update readme Resolving issue [#11868] (#11868) * Update README.md * Update README.md * Update README.md * Update commits with comments from #11903 * Update according to #1193 comments * Update readme to comply code quality test * update readme to comply code quality issues * Elaborate on git commit/push process in docs (#11758) * Add more git instructions * Fix typo in models contributor guide * Update sphinx/source/docs/dev_guide/pull_requests.rst Co-authored-by: Timo Cornelius Metzger <39711796+tcmetzger@users.noreply.github.com> Co-authored-by: Timo Cornelius Metzger <39711796+tcmetzger@users.noreply.github.com> * Hover tooltips for Patch and Areas (#11992) * Initial functioning WIP * WIP Patch and HArea * check for potentially null value * Remove commented out code * remove unnecessary to_screen call * break after successful polygon hit test * Add a comment regarding selection.is_empty() Co-authored-by: Mateusz Paprocki <mattpap@gmail.com> * Remove references to gen.coroutine from docs and update without_document_lock decorator (#12010) * Update without_document_lock to decorate async functions and asyncio.coroutines as well * Update docs to use async functions instead of tornado.gen.coroutines * Add fact that async funcs are accepted in docstring * Add test for async func decorated by without_document_lock * Remove trailing whitespace * simplify CI jobs with composite action (#11833) * simplfy CI jobs with composite action * lower verbosity on unpack * Removed unnecessary calls to _recompute_all_models() to speed up adding roots (#11739) * Removed unnecessary calls to _recompute_all_models() to speed up adding roots * Corrected last commit so that general calls to add_root() still call recompute_all_models(), and that is only worked around in special situations. * Wrapping calls to add_root() within push_all_models_freeze() * Made last commit more elegant by getting rid of loop Co-authored-by: Efrem Braun <efrem.braun@gmail.comm> Co-authored-by: Timo Cornelius Metzger <39711796+tcmetzger@users.noreply.github.com> Co-authored-by: g-parki <61096711+g-parki@users.noreply.github.com> Co-authored-by: Bill <35750915+roadswitcher@users.noreply.github.com> Co-authored-by: Ikko Ashimine <eltociear@gmail.com> Co-authored-by: Harold <eldrickmargarejo@gmail.com> Co-authored-by: code-review-doctor <72647856+code-review-doctor@users.noreply.github.com> Co-authored-by: Thomas Grainger <tagrain@gmail.com> Co-authored-by: girolamo <58935223+girolamodaschio@users.noreply.github.com> Co-authored-by: Alex Pilon <alex.pilon@gmail.com> Co-authored-by: Mateusz Paprocki <mattpap@gmail.com> Co-authored-by: Ben Russell <bprussell80@protonmail.com> Co-authored-by: Efrem Braun <efrem.braun@gmail.com> Co-authored-by: Efrem Braun <efrem.braun@gmail.comm>
|
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Uh oh!
There was an error while loading. Please reload this page.