-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Description
Bug:
mat-table performance with 94 columns and 100 rows with inline editing is now extremely slow with v6. With v5, clicking a button to edit a row would render all the editing controls for that row within 1 second. After moving to v6, rendering those controls now takes 8-10 seconds and navigating the table is very slow.
What is the expected behavior?
Performance should be the same if not better than v5.
What is the current behavior?
It takes too long to render the editing controls in the row.
What are the steps to reproduce?
My apologies for the somewhat vague issue report here and I realize that we're really pushing the limits with a table of this size. I really just wanted to know if anyone is aware of a change from v5 to v6 that could be responsible for the performance issue and any possible workarounds. I did try adding trackBy which had no effect whatsoever on the poor performance. The table has 94 columns, each column is defined individually, not in an ngFor loop. Within each column cell definition are two ng-containers, one for display, one for editing. When the flag for editing is enabled, the ng-container that displays contains either a mat-input or mat-select for editing. Some cells contain mat-tooltips, but I removed all of those to make sure they weren't causing the issue (no change after removing).
What is the use-case or motivation for changing an existing behavior?
We would like to upgrade to v6 for the new features, but are stuck on v5 if we can't get the table to perform adequately. We're also looking at other datatable solutions for this particular table because it is so ridiculously large and complex.
Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 6.0.6, Material 6.3.1, Windows 10, Typescript 2.7.2, tested in Chrome, Firefox, IE10
Is there anything else we should know?
Thank you for any assistance you may be able to provide