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

Only recompute space-view heuristics if something has changed #3110

Open
jleibs opened this issue Aug 25, 2023 · 2 comments
Open

Only recompute space-view heuristics if something has changed #3110

jleibs opened this issue Aug 25, 2023 · 2 comments
Labels
enhancement New feature or request 📉 performance Optimization, memory use, etc 📺 re_viewer affects re_viewer itself

Comments

@jleibs
Copy link
Member

jleibs commented Aug 25, 2023

Specifically, entities_per_system_per_class (and the things it depends on) can be trivially cached if we have not inserted any new components in the data-store.

An easy cache-key for this is to simply sum the number of components across all entity-paths.

@jleibs jleibs added enhancement New feature or request 📺 re_viewer affects re_viewer itself 📉 performance Optimization, memory use, etc labels Aug 25, 2023
@emilk emilk changed the title Don't recompute space-view heuristics if nothing has changed Only recompute space-view heuristics if something has changed Aug 25, 2023
@jleibs
Copy link
Member Author

jleibs commented Nov 28, 2023

This is very related to the new store view functionality.

@Wumpf
Copy link
Member

Wumpf commented Dec 12, 2023

Related (almost duplicate to):

Wumpf added a commit that referenced this issue Dec 16, 2023
…ist of entities per system incrementally (#4558)

### What

* Part of  #3110

Turns out this doesn't result in a large perf win so far since in
samples like ` python
.\examples\python\open_photogrammetry_format\main.py --no-frames ` the
accumulated cost of doing queries in `all_possible_space_views`
overshadows any of these smaller wins. Furthermore, the biggest of
getting the per-entities list seems to be the queries necessary to call
`heuristic_filter` for each entity.
Still, this is an important step for our general dataflow &
infrastructure in this area!

### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using newly built examples:
[app.rerun.io](https://app.rerun.io/pr/4558/index.html)
* Using examples from latest `main` build:
[app.rerun.io](https://app.rerun.io/pr/4558/index.html?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[app.rerun.io](https://app.rerun.io/pr/4558/index.html?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG

- [PR Build Summary](https://build.rerun.io/pr/4558)
- [Docs
preview](https://rerun.io/preview/1493e68738be62586a7012eb970f6206eb16e638/docs)
<!--DOCS-PREVIEW-->
- [Examples
preview](https://rerun.io/preview/1493e68738be62586a7012eb970f6206eb16e638/examples)
<!--EXAMPLES-PREVIEW-->
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

---------

Co-authored-by: Jeremy Leibs <jeremy@rerun.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request 📉 performance Optimization, memory use, etc 📺 re_viewer affects re_viewer itself
Projects
None yet
Development

No branches or pull requests

2 participants