UI hangs when trying to load dataGridList UI with array of 50k+
- Dominant language
- ActionScript
- Stars
- 380
- Forks
- 120
- PR merge metrics
- No merged PRs in 30d
Description
When we try to set dataprovider with data containing more than 50k, it processes for a long time and crashes randomly. Below are the observations from different datasets tried.
Around 40k - UI is able to load in few mins
Around 50k - There is delay in two places - string into list conversion and set data in dataprovider. Setting data in dataprovider takes more than 5min and eventually crashes in some cases
Around 70k - Royale unable to handle the load and crashes
Once we get the device list array, we assign the data to dataprovider to populate in grid UI. This call is taking more time to complete or crashes depending on count. The same is working fine in apache flash
DataGridListBase.as
set dataProvider() {
.....
super.dataProvider = value; //ListBase.as ==> (model as ISelectionModel).dataProvider = value;
.....
}
Also observed random hang in dataprovider function call in setting below iterator
collectionIterator = collection.createCursor(); //IViewCursor(collection);
Kindly review the UI performance issue with huge set of data.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with DataGridListBase.as and trace the dataProvider assignment into ListBase.as, focusing on the model dataProvider update and collection.createCursor(). Reproduce the behavior with datasets around 50k and 70k items. Done means the dataGridList loads large datasets without multi-minute stalls or random crashes.
Written by the indexing model from the issue text.
Assessment
- Domain
- frontend, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100