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

Low-hanging optimizations of the time panel #8819

Closed
wants to merge 2 commits into from

Conversation

abey79
Copy link
Member

@abey79 abey79 commented Jan 27, 2025

Related

What

Two small optimisations which, together, account for 2ms in a worse case scenario.

Benchmark: air traffic data, no views, uncollapsed time panel

image

Result:

image

@abey79 abey79 added 🚀 performance Optimization, memory use, etc include in changelog ui concerns graphical user interface labels Jan 27, 2025
Copy link

github-actions bot commented Jan 27, 2025

Web viewer built successfully. If applicable, you should also test it:

  • I have tested the web viewer
Result Commit Link Manifest
c06c014 https://rerun.io/viewer/pr/8819 +nightly +main

Note: This comment is updated whenever you push a commit.

@Wumpf Wumpf self-requested a review January 27, 2025 11:51
Copy link
Member

@Wumpf Wumpf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

neat!

@Wumpf
Copy link
Member

Wumpf commented Jan 27, 2025

but the snapshot tests catch something. So maybe that changes appearance in some cases?
Want online diff reports so badly...

edit: this should be unrelated? those tests are about the blueprint panel, not the timepanel

@abey79
Copy link
Member Author

abey79 commented Jan 27, 2025

but the snapshot tests catch something. So maybe that changes appearance in some cases? Want online diff reports so badly...

edit: this should be unrelated? those tests are about the blueprint panel, not the timepanel

I'm changing a function that is also called in the blueprint tree, and apparently I broke it. Will look into it.

@@ -185,8 +185,7 @@ pub fn instance_path_icon(
if db
.storage_engine()
.store()
.all_components_on_timeline(timeline, &instance_path.entity_path)
.is_some()
.entity_has_data_on_timeline(timeline, &instance_path.entity_path)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This behaves slightly differently for reasons I don't really comprehend, at least in some tests.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to Clement, one is affected by GC but not the other, which doesn't explain why it break a test where no GC is supposed to take place.

@abey79 abey79 marked this pull request as draft January 27, 2025 17:23
@abey79
Copy link
Member Author

abey79 commented Jan 27, 2025

Drafting this for now—I'll revisit it after my other PRs have landed.

@abey79
Copy link
Member Author

abey79 commented Jan 28, 2025

I'm rebasing this PR onto my refactor and adding further optimisations.

Scrap that. I'll integrate all of this in my refactor.

@abey79
Copy link
Member Author

abey79 commented Jan 28, 2025

Will be moved elsewhere

@abey79 abey79 closed this Jan 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
include in changelog 🚀 performance Optimization, memory use, etc ui concerns graphical user interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants