-
Notifications
You must be signed in to change notification settings - Fork 394
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
Large performance regression (compared to 0.21) for missing query cache #8668
Comments
Since this is a scene with a huge number of objects, I suspect the added overhead of arrow1<->arrow2 conversions is to blame. The conversions are always zero-copy, but usually still involve a few small allocations and pointer-chasing, so they are by no means free. |
row_ids and time columns have both been switched to arrow1, but initial investigation indicates this is not what is slower. It could maybe be related to tagging ( |
This is super-weird. It is this piece of code that has become slower: https://github.com/rerun-io/rerun/blob/0.21.0/crates/store/re_chunk/src/slice.rs#L110-L118 The things is - the code hasn’t changed: https://github.com/rerun-io/rerun/blob/main/crates/store/re_chunk/src/slice.rs#L109-L117 Nor has the types surrounding it. Maybe the new Rustc optimizes worse? I think I need to |
This is the PR that regressed performance: But why? Specifically this commit: I wonder if the |
I'm not 100% sure why this happenes. It looks like roundtripping `ListArray` marks the inner datatype field as nullable, even when it wasn't originally. I'm taking a look at fixing this in `re_arrow2`, but I wanted to open this quick-fix in the meantime. * Closes #8668 * Introduced in PR #8617 * Introduced in commit 78f676f
* Hoping to fix rerun-io/rerun#8668, but no luck so far
* Part of #3741 * [x] Tested that it does not regress #8668 This makes `TransportChunk` a wrapper around an arrow `RecordBatch`. ### Future work * Remove `TransportChunk` and replace it with an extension trait on `RecordBatch` * Simplify the dataframe API to always return a full `RecordBatch` (adding a schema to the rows is basically free now)
This test scene alien_cake_addict.rrd.zip plays (!) now a lot slower.
On my Mac Rerun reports 90ms on 0.21 and 270ms cpu time on 92949cf.
When paused it it went from 50ms to 65ms (also bad, but not as crazy).
From a first glimpse it seems that the cost of not hitting the query cache has gone up considerably, but more investigation is needed.
This may be temporary due to the ongoing arrow/arrow2 conversion. (shipblocking in any case!).
The text was updated successfully, but these errors were encountered: