Description
It has been observed that performance degrades when multiple there are huge number of layers, particularly affecting map/UI interaction. This slowness is caused by the logic for computing pending changes being placed inside a selector, which is called multiple times under heavy load.
What kind of improvement you want to add? (check one with "x", remove the others)
Other useful information
Proposed Enhancements
-
Separate Logic
- Move the logic for:
- Computing pending changes.
- Preparing the resource to save.
- The resource preparation should be handled via a selector (without debounce) to avoid inconsistencies.
-
Component-Based Optimization
- Shift the pending changes computation into a connected component.
- Apply debounce to reduce frequent executions of heavy computations.
- Optimize more if possible
-
Store in State
- Save the computed pending changes in the application state for access by other components.
Ultimately, when performing map interaction on a map with a large number of layers (or has layer with heavy geometry), it should not block the JS main thread, causing the entire application to hang.
Description
It has been observed that performance degrades when multiple there are huge number of layers, particularly affecting map/UI interaction. This slowness is caused by the logic for computing pending changes being placed inside a selector, which is called multiple times under heavy load.
What kind of improvement you want to add? (check one with "x", remove the others)
Other useful information
Proposed Enhancements
Separate Logic
Component-Based Optimization
Store in State
Ultimately, when performing map interaction on a map with a large number of layers (or has layer with heavy geometry), it should not block the JS main thread, causing the entire application to hang.