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

Performance improvements [HIGH PRIORITY] #8

Open
BurkusCat opened this issue Dec 23, 2018 · 7 comments
Open

Performance improvements [HIGH PRIORITY] #8

BurkusCat opened this issue Dec 23, 2018 · 7 comments
Labels
bug Something isn't working help wanted Extra attention is needed high priority This issue would have a large impact and should be worked on before other issues

Comments

@BurkusCat
Copy link
Owner

  • The app can feel a bit sluggish when zoomed out
  • Optimise performance of the app
  • Potentially contribute back to neo4dj3 if any optimisations apply there
@BurkusCat BurkusCat added the bug Something isn't working label Dec 23, 2018
@BurkusCat
Copy link
Owner Author

Pretty pleased with these results: https://www.webpagetest.org/result/181228_TB_7e9ae122f72f92ec5d7ce0ddc1cd45c9/ Any ideas of places to improve from that? A few of the .svgs weren't cached in that test run and the .svgs took a long time before they started downloading.

@BurkusCat
Copy link
Owner Author

Performance in this graph is really good and it is similar to this repo's graph https://bl.ocks.org/almsuarez/4333a12d2531d6c1f6f22b74f2c57102

@BurkusCat BurkusCat added help wanted Extra attention is needed high priority This issue would have a large impact and should be worked on before other issues labels Feb 15, 2019
@BurkusCat
Copy link
Owner Author

Related to #111

@BurkusCat BurkusCat pinned this issue Feb 15, 2019
@BurkusCat BurkusCat changed the title Performance improvements Performance improvements [HIGH PRIORITY] Feb 15, 2019
@bloodywine
Copy link
Collaborator

Added the branch performance-fix with a possible temporary patch. There is not a ton of information about how to manipulate or use canvas with d3. Another option I considered was a library change from neo4jd3 to WebGL or similar, but I would like to exhaust all options first.

Let me know your thoughts.

@BurkusCat
Copy link
Owner Author

Sorry, completely missed this comment @CrayCrayDecay !

I really love this temporary change. It makes the app feel a lot snappier. I do like the never ending physics currently on the site, but the low framerate makes it feel bad. Maybe if we find other improvements we can go back to it sometime.

Definitely PR that change in :)

@BurkusCat
Copy link
Owner Author

BurkusCat commented Apr 27, 2022

Observation: framerate increases the more you zoom in. Is it related to the rendering of .svgs?

However, tick relationship text and tick relationship outlines take way too long to compute, is it related to the the processing of the physics/positions of the .svgs?

image

Commenting out tickRelationshipOutlines(); I thought would improve things but it still appears to take a long time drawing. Maybe physics + rendering are both bottlenecks?

image

@BurkusCat
Copy link
Owner Author

#209 should dramatically reduce performance issues by reducing the number/length of "forced redraws". After this, the main bottlenecks will be:

  • The complexity of the calculations used in transforms. Can there be code optimisations here or faster estimates?
  • The length of the recalculate style + layout operations (these now only happen after the processing). They take quite a few ms, can anything be optimised to reduce their duration?

@BurkusCat BurkusCat reopened this Apr 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed high priority This issue would have a large impact and should be worked on before other issues
Projects
None yet
Development

No branches or pull requests

2 participants