[Webkit-unassigned] [Bug 76265] New: Cache RenderStyle pointer as a method to avoid performance regression for region styling

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 13 04:32:25 PST 2012


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

           Summary: Cache RenderStyle pointer as a method to avoid
                    performance regression for region styling
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Layout and Rendering
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: mihnea at adobe.com
            Blocks: 71488


During the investigation of regression introduced by region style patch (https://bugs.webkit.org/show_bug.cgi?id=71488), it turned out that an important contribution to the regression was introduced by the layout of RenderObject::style()

inline RenderStyle* RenderObject::style() const
{
    if (!inRenderFlowThread())
        return m_style.get();
    return styleInRegion();
}

During several runs of webkit build in instruments, i was able to identify some areas in which the method of caching RenderStyle pointer and replace style() with the cached pointer seems to fix the performance regression introduced by the modified version of style().

These areas are:
* updateBoxModelInfoFromStyle (RenderBoxModelObject/RenderBox)
* computePreferredLogicalWidths
* styleDidChange/styleWillChange (RenderText/RenderBlock/RenderBoxModelObject/RenderInline/RenderBox)
* RenderBlock layout methods (layoutRunsAndFloats/LineBreaker::nextLineBreak/layoutInlineChildren/layoutBlock)
* RenderBox willBeDestroyed/paintBoxDecorarations/computeRectForRepaint/computeLogicalHeight
* RenderText widthFromCache/width


I intend to create a WebKit bug for each of the above bullets instead of creating a big patch.

-- 
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