Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
sunibala opened this issue Oct 17, 2024 · 12 comments
Open

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

sunibala opened this issue Oct 17, 2024 · 12 comments

Comments

@sunibala
Copy link

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.

@Nisaba
Copy link

Nisaba commented Oct 17, 2024

+1

I also experimented lack of performance in DataGrid, even with a few hundred of records.
It seems to be worse if datasource is ArrayListView instead of ArrayList...

@mjesteve
Copy link
Contributor

I usually use virtual components to load a large number of records. What control set are you using? MX, Jewel?

@Nisaba
Copy link

Nisaba commented Oct 19, 2024

jewel for me

@mjesteve
Copy link
Contributor

Nisaba, If you use Jewel VirtualList you will experience better performance.

@Nisaba
Copy link

Nisaba commented Oct 19, 2024

Thank you for your feedback.

I don't know VirtualList... Is there a sample somewhere ?

@mjesteve
Copy link
Contributor

mjesteve commented Oct 19, 2024

@Nisaba
Copy link

Nisaba commented Oct 20, 2024

Yes, I experiment good speed improvement with Virtual Datagrid.

But I experiment also display bugs. Please see in screenshots Datagrid vs VirtualDataGrid.
Also, when I click on header, it acts like clicking in the first row...
Any idea ?

image

image

@mjesteve
Copy link
Contributor

I don't use VirtualDataGrid, I like VirtualList better. Why don't you send an email to the mailing lists? There will always be some other user working with VirtualDataGrid who can help you out:
[email protected]
[email protected]

If we were unlucky, I'd try to give you a hand myself...

@alinakazi
Copy link
Member

I didn't work on VirtualDataGrid either. If that doesn't work for you. You may try AGGrid, I will experiment with 70,000 records and will update you.

https://youtu.be/45YhBPqP0eE?si=cDptnk0kXyDw93NN

@alinakazi alinakazi reopened this Oct 20, 2024
@alinakazi
Copy link
Member

alinakazi commented Oct 20, 2024

Let me know if you need any help with AGGrid

@alinakazi alinakazi reopened this Oct 20, 2024
@Nisaba
Copy link

Nisaba commented Oct 21, 2024

@mjesteve OK, I've post to users list, thanks

@alinakazi AGGrid sounds good, Do you have a link to a sample in Royale ?

@alinakazi alinakazi reopened this Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants