Our state of the art Gantt chart


Post by jayoung@copado.com »

I'm working with a data set that is about 5,000+ parent nodes and a handful of rollup children per parent node, equating to around 20,000 total entries, although the rollups are only displayed on the timeline and not in the grid.

After passing this object to the Gantt component, there is up to a minute of loading time before the component renders. Also, sometimes the lazy load scrolling will freeze up the component for a few seconds if you scroll quickly. I'm wondering what opportunities are available to optimize the load times and performance.

One thing we are looking into currently is to load the data into the component in chunks, or loading the grid data first and then timeline data afterwards. Any information would be highly appreciated!

Last edited by jayoung@copado.com on Thu Oct 21, 2021 8:46 pm, edited 3 times in total.

Post by saki »

I tried to use your data to test it in our basic React demo but it was always only a couple of seconds w/o any freezes. Would you please post the complete application so that we can investigate all aspects of performance?


Post by jayoung@copado.com »

I cannot publicize the application on this forum


Post by jayoung@copado.com »

If you change the big data set example to 30000+ you can see the time starts to really increase. We have closer to that many entries. In general, what can be done to make the loading or calculation faster? I found the ProjectModel setCalculations function which seems like it would help, but I get a function not found when I attempt to use it. Tried this method also, didn't seem to impact.

          new ProjectModel({
                    taskStore: {
                        useRawData: true,
                        reapplyFilterOnUpdate: true,
                    },
                    dependencyStore: {
                        useRawData: true
                    },
                    tasksData: data,
                    calculations: {
                        tasks : {
                            startDate : "userProvidedValue",
                            endDate   : "userProvidedValue",
                            duration  : "userProvidedValue"
                        }
                    }
        })

Any advice about best practices for very large sets would be highly appreciated. Loading in chunks freezes the component until they load fully so it doesn't really improve performance


Post by saki »

We need to investigate the issue so I created a ticket for it here: https://github.com/bryntum/support/issues/3606

Provide please any additional data you can: steps to do with our demo(s), values used for testing, measured time(s), configuration of the Gantt, data used for testing, etc. Post it here or in the ticket itself.


Post by jayoung@copado.com »

Attached a zip of an example application that exemplifies long loads

Attachments
bigdata demo.zip
(1.53 MiB) Downloaded 51 times

Post by saki »

Thank you very much for the showcase. I've run it and especially scrolling indeed shows the sub-optimal performance.

big-dataset-performance.gif
big-dataset-performance.gif (682.95 KiB) Viewed 572 times

Post by jayoung@copado.com »

That's interesting to see that perspective... That same example takes at least 30 seconds to load on my machine. In our cloud hosted environments its 60 seconds or longer


Post by saki »

FYI: I have run it on 6 years old iMac.

Screen Shot 2021-10-26 at 18.26.39.png
Screen Shot 2021-10-26 at 18.26.39.png (53.88 KiB) Viewed 567 times

Post Reply