Skip to content

Hotfix Table Optimization Part 2 #399

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

Open
wants to merge 7 commits into
base: dev-dhi
Choose a base branch
from

Conversation

benloh
Copy link
Collaborator

@benloh benloh commented May 24, 2025

DO NOT MERGE until after pilot is over!!!
Merge #398 before this!!!

To continue to improve performance on older Chromebooks...

FILTER_SUMMARY_UPDATE and FILTEREDNCDATA UDATA updates were resulting in NCNodeTable and NCEdgeTable rendering twice. This is most visible when typing in search terms with either table open.

This fix reduces search input changes to a single state update.

  • FILTER_SUMMARY_UPDATE calls were combined with FILTEREDNCDATA so there is a single UDATA message/state update.
  • The filtered summary was moved out of NCInfoPanel into a new NCFilteredSummary component so that any updates to FILTEREDNCDATA would not trigger a second render with the child NCNodeTable and NCEdgeTable components.
  • Go beyond hotfix-table-optimization: Skip table render if table is not open. #396 #398 to not only skip the render, but also skip the state update if the NCNodeTable or NCEdgeTable components are closed.
  • HumanDate and HumanDateShort rendering on URTable is very sluggish on a slow Chromebook. e.g. it was taking 1356ms eating 18.5% of the rendering time with 82 nodes. Cache the rendered date so it doesn't have to be constructed with each render. 424299c

Further optimizations might be hard to come by. Search input changes render quite quickly in the graph. The culprit is table rendering itself rather than repeated state updates.

Addresses #396.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant