rerun icon indicating copy to clipboard operation
rerun copied to clipboard

Optimize point clouds

Open emilk opened this issue 2 years ago • 2 comments

In the nyud example, SceneSpatial::load_objects goes from 8.5ms to 16ms.

Classic: Screen Shot 2023-01-20 at 14 12 56

Arrow: Screen Shot 2023-01-20 at 14 23 48

TODO:

  • [ ] Improve crates/re_query/benches/query_benchmark.rs with benchmarks of:
    • [x] full primary and full secondary
    • [ ] full primary and sparse secondary
    • [ ] full primary and splat secondary
    • [ ] full primary and missing secondary
  • [ ] Realistic point cloud benchmark, similar to nyud and/or colmap, using actual Points3DPart::load
  • [ ] Write tests for ComponentJoinedIterator:
    • [ ] full primary and full secondary
    • [ ] full primary and sparse secondary
    • [ ] full primary and splat secondary
    • [ ] full primary and missing secondary
  • [ ] Optimize ComponentJoinedIterator:
    • Special case for the common case when the instance keys are identical (no need to compare them - if they are same length, and starts and end on the same key, with the length as the difference, then they are the same)

emilk avatar Jan 20 '23 13:01 emilk

Some of this optimization work will be easier once we remove the "classic" store

emilk avatar Jan 20 '23 13:01 emilk

Thanks to https://github.com/rerun-io/rerun/pull/1064 we are now down to 9 ms, which is within the noise of the classic store:

image

…but I still think we should spend a few hours making a benchmark and see if there are any low-hanging fruit in ComponentJoinedIterator

emilk avatar Feb 04 '23 15:02 emilk

  • Closing in favor of https://github.com/rerun-io/rerun/issues/1136

emilk avatar Aug 18 '23 09:08 emilk