Description
During Q3 we conducted a detailed analysis of the Front End performance issues, origin and mitigation strategies.
As part of the goal to reduce the complexity of the components, we want to migrate ZObject flat representation from an Array to a Map. This would drastically improve the complexity of two of the tree nuclear Object table access methods:
- getRowById: O(n)→O(1)
- getChildrenByParentRowId: Still O(n)
- getRowIndexById: O(n)→O(1)
Desired behavior/Acceptance criteria
- ZObject store initialization converts the ZObject into a Map instead of an Array
- All getters and setters are adapted to the new data structure
- All tests are mocked using Map instead of Array
- We have a way forward to improve the performance of getChildrenByParentRowId
Completion checklist
- Before closing this task, review one by one the checklist available here: https://www.mediawiki.org/wiki/Abstract_Wikipedia_team/Definition_of_Done#Front-end_Task/Bug_Completion_Checklist