Comment 10 for bug 1797007

Revision history for this message
Jason Boyer (jboyer) wrote :

The reason that the changes in bug #1794176 are causing issues is that every single call to cellOverflowed() causes a (full page?) re-layout, and it is called at a minimum $cols times when adding a new row to a grid. ($rows * $cols for checkin. :( ) I checked in a single item into a fresh checkin page and looking at my Chrome Performance tab shows that 800+ms is spent in the angular $digest function, most of which is actually cellOverflowed() waiting for Chrome's Layout action. There's a very large number of calls in general and most are a few ms here, a couple us there, but the time spent waiting on Layout far outweighs everything else in that near-second per row. (second checkin presented me with a 1.3+s $digest...)

I'm not sure of the best way to mitigate all of these delays since the simple act of requesting an element's size is the problem (possibly each of the 4 accesses? I don't know that for sure) and we really need to know the size of the columns (can be cached easily enough at times) and the elements within them (all different... :( ).