[Webkit-unassigned] [Bug 13487] Implement O(1) absoluteClippedOverflowRect and absoluteOutlineBox during layout for a possible speed gain

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Apr 26 10:43:37 PDT 2007


http://bugs.webkit.org/show_bug.cgi?id=13487





------- Comment #10 from hyatt at apple.com  2007-04-26 10:43 PDT -------
Here are the top offenders on the nesting PLT:

15% WebCore::RenderObject::containingBlock() const
11% WebCore::RenderFlow::dirtyLinesFromChangedChild(WebCore::RenderObject*)
11% WebCore::RenderObject::repaint(bool)
9% WebCore::RenderBox::computeAbsoluteRepaintRect(WebCore::IntRect&, bool)
4% WebCore::RenderBox::absolutePosition(int&, int&, bool) const

Excluding containingBlock turns into:

15% WebCore::RenderObject::invalidateContainingBlockPrefWidths()

Which breaks down into 10% appendChildNode and 5% removeChildNode.

It's clear from that profile that this change to make these O(1) will be a win.
 I think I should probably fix invalidatePrefWidths to use container() so that
intermediate inlines are not skipped, since not dirtying the inlines is
introducing O(n^2) behavior into this method as inlines nest deeply.


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



More information about the webkit-unassigned mailing list