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

WIP - introduce node count threshold for opacity animations on zoom #15764

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

mjkkirschner
Copy link
Member

@mjkkirschner mjkkirschner commented Jan 17, 2025

Purpose

extracts some changes from:
#15749 by @dimven

Essentially do not animate opacity changes when zooming as this has very poor performance that we cannot control.
Instead, only trigger these animations if the total number of nodes in the graph is under some threshold.

TODO:

  • create feature flag
  • use feature flag for the threshold
  • investigate using static property binding instead of doing ancestor lookup (profiling this with dot trace, I could very well be missing something, but these calls seem to be fast enough even with > 1000 nodes in the canvas - there are tons of get property accesses being made per node to StopAnimations, but it looks like the ancestor calls are still very fast). It could be that I cannot really profile them with dot trace though. I might try to write a more macro test to see if there is any difference with and without.
  • consider tests for checking threshold

Declarations

Check these if you believe they are true

  • The codebase is in a better state after this PR
  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • All tests pass using the self-service CI.
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document.
  • This PR modifies some build requirements and the readme is updated
  • This PR contains no files larger than 50 MB

Release Notes

improve zoom performance by only animating opacity changes if there are few nodes in the graph.

Reviewers

(FILL ME IN) Reviewer 1 (If possible, assign the Reviewer for the PR)

(FILL ME IN, optional) Any additional notes to reviewers or testers.

FYIs

(FILL ME IN, Optional) Names of anyone else you wish to be notified of

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

Successfully merging this pull request may close these issues.

2 participants