Skip to content

Thoughts about performance #69

@NdibeRaymond

Description

@NdibeRaymond

This is a sketch, will update as I do figure out more about where to make improvements:

  • Consider using "window" technique.

As the DOM get's larger, the ui tends to get slower. This indirectly translates to "The more time spent using the ui without closing, the slower it gets". This shouldn't be so. ways to fix this includes:

  • research on how "window" technique can be used to only have nodes that are enough to cover the viewport in the dom at a given point in time.
  • Research already existing solutions that can solve this issue? (react-window,
    react- virtualized, any other solution?)
  • What happens if the existing solutions can't handle the complexity of our dom? build in-house solution?
  • Investigate how Json parsing is currently being done and find better solutions.
  • use lodash cloneDeep vs JSON.parse(JSON.stringify()) vs custom deep clone method? actual bench-marking will be useful here. JSON.parse(JSON.stringify()) seems to be the slowest from experience.
  • Ensure that state mutation is not taking place anywhere in the app.
    Before assigning value to object read from store or state, always deep clone the object.
  • Spend some time in the gut of the application and try to weed out inefficiencies in the way server interaction is being done.
  • Try to ensure that useEffect only listens to values that are absolutely necessary for it's operation and nothing else.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions