Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#9130 closed defect (fixed)

Grid rendering performance issues

Reported by: Nathan Toone Owned by: Nathan Toone
Priority: high Milestone: 1.4
Component: DojoX Grid Version: 1.3.0
Keywords: Cc:
Blocked By: Blocking:

Description

There are some issues with the grid performance when rendering - especially when resizing/laying out the grid as well as when resizing and moving columns.

Attachments (6)

gridperformance.2.patch (9.6 KB) - added by Nathan Toone 11 years ago.
Update to patch to add performance improvements to the scroller (don't fetch pages while invalidating) and viewmanager (cache computed style so we aren't calculating them multiple times) These changes, combined with the previous timing changes, take the creation/startup/first fetch time for a simple grid from 600ms to 260ms and make it "feel" more responsive to resizing.
gridperformance.patch (15.9 KB) - added by Nathan Toone 11 years ago.
OK - this is enough performance improvements (and it also contains a test case file) Now it's time to test and see what got broken... :)
gridperformance.3.patch (16.1 KB) - added by Nathan Toone 11 years ago.
Last one - I promise. Now I'll test. This patch removes an unnecessary connect since we are no longer using a timeout
gridperformance.4.patch (16.1 KB) - added by Nathan Toone 11 years ago.
Fix issue with sizeChange needing to call update instead of render.
gridperformance.5.patch (16.1 KB) - added by Nathan Toone 11 years ago.
Fix issue with autoHeight grids that have a number for their autoHeight value that is less than their number of rows.
gridperformance.6.patch (16.2 KB) - added by Nathan Toone 11 years ago.
Fix issue with multiple view row height sizing.

Download all attachments as: .zip

Change History (11)

Changed 11 years ago by Nathan Toone

Attachment: gridperformance.2.patch added

Update to patch to add performance improvements to the scroller (don't fetch pages while invalidating) and viewmanager (cache computed style so we aren't calculating them multiple times) These changes, combined with the previous timing changes, take the creation/startup/first fetch time for a simple grid from 600ms to 260ms and make it "feel" more responsive to resizing.

Changed 11 years ago by Nathan Toone

Attachment: gridperformance.patch added

OK - this is enough performance improvements (and it also contains a test case file) Now it's time to test and see what got broken... :)

Changed 11 years ago by Nathan Toone

Attachment: gridperformance.3.patch added

Last one - I promise. Now I'll test. This patch removes an unnecessary connect since we are no longer using a timeout

Changed 11 years ago by Nathan Toone

Attachment: gridperformance.4.patch added

Fix issue with sizeChange needing to call update instead of render.

comment:1 Changed 11 years ago by Nathan Toone

Timings with this latest patch:

FF3 before patch (create/resize):691ms / 266ms
FF3 after patch (create/resize):333ms (+51%) / 180ms (+32%)
IE8 before patch (create/resize):547ms / 167ms
IE8 after patch (create/resize):390ms (+28%) / 125ms (+25%)

In addition, this patch removes many of the delays that make the grid "feel" unresponsive when resizing the grid, resizing columns, or reordering columns.

Changed 11 years ago by Nathan Toone

Attachment: gridperformance.5.patch added

Fix issue with autoHeight grids that have a number for their autoHeight value that is less than their number of rows.

Changed 11 years ago by Nathan Toone

Attachment: gridperformance.6.patch added

Fix issue with multiple view row height sizing.

comment:2 Changed 11 years ago by Nathan Toone

Resolution: fixed
Status: newclosed

(In [17305]) Fixes #9130 - improves performance to rendering and resizing of grid !strict

comment:3 Changed 11 years ago by Adam Peller

Milestone: future1.4

comment:4 Changed 10 years ago by Nathan Toone

(In [17428]) Refs #9130 - fix issue with resizing of autoheight pages !strict

comment:5 Changed 10 years ago by Nathan Toone

Another fix to autoheight issues in [17525]

Note: See TracTickets for help on using tickets.