apache / apache/royale-asjs

UI hangs when trying to load dataGridList UI with array of 50k+

Open
#1,248 20 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.