neosync
neosync copied to clipboard
[NEOS-652] Further optimize job mapping table for large datasets
This table is in a decent state, but needs some refactoring along with the components that use it to reduce the amount of times we iterate over the dataset.
This is problematic because we get the job mapping + schema data from the API, load them into the form, then work off of the form data.
We need to figure out how to optimize this and memoize the results better.
Downstream components further exasperate this by iterating over the form dataset multiple times to do things like calculate the tree, search filter data, etc.
We should pull this up even if it makes the abstraction a little leaky to optimize the performance.
If you profile the renders and do things like click the checkboxes or change the transformer, you can see big blank spots in the components before the children renders. This is time spent running function logic prior to render. This should be reduced.
It might also be further worth optimizing components via memoization if possible.
From SyncLinear.com | NEOS-652