-
Notifications
You must be signed in to change notification settings - Fork 162
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
Merge diets #1142
base: master
Are you sure you want to change the base?
Merge diets #1142
Conversation
get up to date
…lower but is performance better?
… useful when the number of paths is in four digits.
Precision diet
reduce precision in path values. this reduces DOM storage. it is only…
Svg style diet
Now I will be a bit more careful to note the details of the test. Equipment: a 5-year old i5
test #1 -- click to change the date slider slightly. I am trying to stay close to max-scale of 05-08. total time in modifySVG through all test steps: |
|
A simple performance test:
@jameshadfield James: this PR is now visually the same as master, the tip borders are no longer black but have colours like master. When comparing performance numbers, note that the previous ones had double-counting because render includes drawBranches and drawTips, sorry! |
the css default is "visible" so clear the setting to make it visible
Description of proposed changes
What is the goal of this pull request? What does this pull request change?
Performance in SVG updates.
Note: this PR is experimental, not ready for prime time. And I probably have not found the best way to measure performance here. Note also that there is a visual difference, with the tip borders all the same colour (black) which might be a bit visually jarring. But when we have the tip count increasing weekly we need to make plans.
This branch merges #1128 SvgDiet, #1136 PrecisionDiet and #1137 PrecisionDiet2 for some measurements. These changes all reduce the DOM storage for tips and branches. During SVG changes it would be nice if all this storage could fit in processor cache, but of course it cannot.
Related issue(s)
Fixes #
Related to # performance audit
Testing
What steps should be taken to test the changes you've proposed?
If you added or changed behavior in the codebase, did you update the tests, or do you need help with this?
I added two timers in components/tree/phyloTree/change.js named
"4.modifySVG"
"4phylotree.change"
Here is the code being timed:
The dataset: http://localhost:4000/ncov/north-america dates to may8
The timings below are a bit irregular, but at first glance there is an improvement over master. (The build still has other timers such as addgrid, entropy which I am not currently interested in, so they are not shown).
branch: master
click to change the date slider slightly
click a short vertical line at bottom-left with "descendents: 5305"
to zoom in on a clade
reset layout
branch:mergeDiets
click to change the date slider slightly
click a short vertical line at bottom-left with "descendents: 5305"
to zoom in on a clade
click to return out from clade
reset layout
click to zoom in on a clade (choose a large one
reset layout
Thank you for contributing to Nextstrain!