[Webkit-unassigned] [Bug 39794] Inserting more than 30 000 nodes is very slow

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 27 18:24:08 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=39794


James Robinson <jamesr at chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hyatt at apple.com,
                   |                            |jamesr at chromium.org,
                   |                            |mitz at webkit.org




--- Comment #1 from James Robinson <jamesr at chromium.org>  2010-05-27 18:24:07 PST ---
Ironically (given the source of this test case is http://hacks.mozilla.org/2010/05/better-performance-with-lazy-frame-construction/) all of the time is spent in a single lazy attachment pass.  There are a few bits of N^2 behavior:

1.) Node::attach()'s loop through nextSibling() to check for adj text nodes. http://trac.webkit.org/browser/trunk/WebCore/dom/Node.cpp#L1226.  This does a crawl through all subsequent siblings to see if they have renderers.  Slow, but not new (that code is from r29054.

2.) Node::nextRenderer() called from Node::createRendererIfNeeded().  This also does a call through all siblings.  This is also slow and also not new.

This doesn't look like a regression, so it is probably super important relative to other things.  It would be nice at least to not have to make two passes through all siblings at each attachment instead of one.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list