Re: Mutation events - slowness examples

>>>> Just as a data point, Gecko trunk had a bug earlier today where we 
>>>> accidentally introduce a performance regression on removing table 
>>>> rows.  The bug was easily caught because the regression made 
>>>> removing a table row O(N) in number of rows and it immediately 
>>>> turned out that all sorts of pages out there sort multi-thousand-row 
>>>> tables by reordering the row nodes in the DOM.
>>> Can you provide some URLs?
>>
>> Here's an example: 
>> http://crash-stats.mozilla.com/report/list?product=Firefox&version=Firefox%3A3.0&version=Firefox%3A3.0.1&version=Firefox%3A3.0.10&version=Firefox%3A3.0.10pre&version=Firefox%3A3.0.11&version=Firefox%3A3.0.11pre&version=Firefox%3A3.0.12pre&version=Firefox%3A3.0.1pre&version=Firefox%3A3.0.2&version=Firefox%3A3.0.2pre&version=Firefox%3A3.0.3&version=Firefox%3A3.0.4&version=Firefox%3A3.0.4pre&version=Firefox%3A3.0.5&version=Firefox%3A3.0.5pre&version=Firefox%3A3.0.6&version=Firefox%3A3.0.6pre&version=Firefox%3A3.0.7&version=Firefox%3A3.0.7pre&version=Firefox%3A3.0.8&version=Firefox%3A3.0.8pre&version=Firefox%3A3.0.9&version=Firefox%3A3.0.9pre&version=Firefox%3A3.0b1&version=Firefox%3A3.0b2&version=Firefox%3A3.0b3&version=Firefox%3A3.0b4&version=Firefox%3A3.0b5&version=Firefox%3A3.0b5pre&version=Firefox%3A3.0pre&version=Firefox%3A3.1a1&version=Firefox%3A3.1a1pre&version=Firefox%3A3.1a2&version=Firefox%3A3.1a2pre&version=Firefox%3A3.1b1&version=Firefox%3A3.1b1pre&version=Firefox
%3A 
>>
>> 3.1b2&version=Firefox%3A3.1b2pre&version=Firefox%3A3.1b3&version=Firefox%3A3.1b3pre&version=Firefox%3A3.1b4pre&version=Firefox%3A3.2a1pre&version=Firefox%3A3.5&version=Firefox%3A3.5b4&version=Firefox%3A3.5b4pre&version=Firefox%3A3.5b5pre&version=Firefox%3A3.5b99&version=Firefox%3A3.5pre&version=Firefox%3A3.6a1pre&platform=mac&query_search=signature&query_type=contains&query=nsObjCExceptionLogAbort&date=&range_value=4&range_unit=weeks&do_query=1&signature=nsObjCExceptionLogAbort%28NSException*%29%20|%20nsAppShell%3A%3AProcessGeckoEvents%28void*%29 
>>
> That just gives me a page of crash-stats. I can't find any links to 
> pages that caused the crashes.

That page sorts the table of crash-stats when DOMContentLoaded fires. 
There aren't any "pages that caused the crashes" (and I'm not sure what 
made you think there are).  Just the page I linked to, which shows an 
~500 row table being sorted.  Not counting mutations triggered by the 
parser while building up the DOM, loading that page performs 500-some 
DOM node inserts and 500-some DOM node removes.  Clicking the table 
headers also has the same effect: 1 click, 1000-some DOM operations.

-Boris

Received on Friday, 26 June 2009 04:52:37 UTC