Bad performance of TaskStore.filterTreeBy

Discuss issues related to v5.x
User avatar
jkbeks
Posts: 22
Joined: Fri Mar 31, 2017 3:09 pm

Bad performance of TaskStore.filterTreeBy

Post by jkbeks » Fri Dec 01, 2017 5:10 pm

The performance of TaskStore.filterTreeBy is much worse in
Gantt Pro 5.1.3 + Ext JS 6.5.0.775
than in
Ext Gantt 2.1.15 + Ext JS 4.1
Customers are complaining about this deterioration.
The Chrome performance profiler shows many Forced reflows.
This can simply be reproduced with an example like Gantt Advanced demo after adding (much) more data.
Is there a way to improve the performance?

User avatar
mats
Core Developer
Core Developer
Posts: 15590
Joined: Sat Dec 19, 2009 11:41 pm
Location: Sweden
Contact:

Re: Bad performance of TaskStore.filterTreeBy

Post by mats » Sat Dec 02, 2017 4:37 am

This is an internal issue in the Sencha Ext JS codebase and it'll take a bit of investigation to figure out the root cause. We have this ticket opened already but no workaround available yet.

https://app.assembla.com/spaces/bryntum ... ng/details#
Tired of debugging javascript errors in web applications? Try our new error logging service RootCause, or read more on the Sencha blog

@bryntum
Facebook
API documentation

User avatar
jkbeks
Posts: 22
Joined: Fri Mar 31, 2017 3:09 pm

Re: Bad performance of TaskStore.filterTreeBy

Post by jkbeks » Tue Dec 05, 2017 9:16 am

Is it possible to raise the priority of this issue?
I see the ticket is open since april 2017.

User avatar
mats
Core Developer
Core Developer
Posts: 15590
Joined: Sat Dec 19, 2009 11:41 pm
Location: Sweden
Contact:

Re: Bad performance of TaskStore.filterTreeBy

Post by mats » Tue Dec 05, 2017 11:43 am

1. Can you please provide the dataset you use to reproduce it?
2. Try with Ext JS 6.5.1 or 6.5.2, still same result?
Tired of debugging javascript errors in web applications? Try our new error logging service RootCause, or read more on the Sencha blog

@bryntum
Facebook
API documentation

User avatar
jkbeks
Posts: 22
Joined: Fri Mar 31, 2017 3:09 pm

Re: Bad performance of TaskStore.filterTreeBy

Post by jkbeks » Mon Dec 11, 2017 6:00 pm

preliminary results:
5.1.3 + 6.5.1: no improvement
5.1.3 + 6.5.2: combination doesn't work (combination not supported)
5.1.3 + 6.2.1: no improvement
5.1.9 + 6.5.2: no improvement

User avatar
mats
Core Developer
Core Developer
Posts: 15590
Joined: Sat Dec 19, 2009 11:41 pm
Location: Sweden
Contact:

Re: Bad performance of TaskStore.filterTreeBy

Post by mats » Mon Dec 11, 2017 6:02 pm

Ok, please provide a small test case with your data and we'll take a look!
Tired of debugging javascript errors in web applications? Try our new error logging service RootCause, or read more on the Sencha blog

@bryntum
Facebook
API documentation

User avatar
jkbeks
Posts: 22
Joined: Fri Mar 31, 2017 3:09 pm

Re: Bad performance of TaskStore.filterTreeBy

Post by jkbeks » Thu Dec 21, 2017 12:24 pm

I don't understand.
The issue is already known as you mentioned above.
Please solve this issue a.s.a.p. because customers are complaining.

User avatar
mats
Core Developer
Core Developer
Posts: 15590
Joined: Sat Dec 19, 2009 11:41 pm
Location: Sweden
Contact:

Re: Bad performance of TaskStore.filterTreeBy

Post by mats » Thu Dec 21, 2017 12:34 pm

Issue *was known*, now we don't see it anymore. We need first to be able to reproduce this. Can you please provide a simple test case?

Try this demo:
https://www.bryntum.com/examples/gantt- ... igdataset/

Open console, filter out some tasks, then try editing - I don't see any performance issue.

Code: Select all

Ext.first('ganttpanel').store.filterTreeBy(function(task) { return task.id% 4; })
Tired of debugging javascript errors in web applications? Try our new error logging service RootCause, or read more on the Sencha blog

@bryntum
Facebook
API documentation

User avatar
jkbeks
Posts: 22
Joined: Fri Mar 31, 2017 3:09 pm

Re: Bad performance of TaskStore.filterTreeBy

Post by jkbeks » Thu Mar 22, 2018 6:00 pm

I added 2 zips containing modified examples.

5.1.3
Example: Big data set
You can enter number of levels deep and number of child tasks.
Also added 10 extra columns to filter.
Mostly tested with 4 levels deep and 8 child tasks.
Our application goes 4 levels deep most of the time.
Remarks:
-Filtering is much slower than 2.1.15
-Filtering is even slower in IE than Firefox/Chrome.
Customer works with IE in terminal server environment which doesn't help either.

2.1.15
Example: buffered
Couldn't get the 10 extra columns working.
4 levels deep / 8 child tasks is hard-coded.
Remarks:
-Filtering is fast.
-After clear filter the tree is restored to the state (expanded/collapsed) before filtering.

Why is filtering much slower in 5.1.3 than in 2.1.15?
Why is the treestate not restored in 5.1.3 as in 2.1.15?
Attachments
gantt-2.1.15 buffered.zip
Modified buffered example v2.1.15
(2.8 KiB) Downloaded 88 times
gantt-pro-5.1.3 bigdataset.zip
Modified Big data set example v5.1.3
(12.16 KiB) Downloaded 84 times

User avatar
Maxim Gorkovsky
Core Developer
Core Developer
Posts: 3060
Joined: Wed Jan 08, 2014 11:46 am

Re: Bad performance of TaskStore.filterTreeBy

Post by Maxim Gorkovsky » Fri Mar 23, 2018 2:43 pm

Hello.
I can reproduce it, I opened ticket to track this issue: https://app.assembla.com/spaces/bryntum/tickets/5988
Filtering takes 150ms on 2.x and 800ms on 5.x for me. We will look into this issue.

Post Reply