[Webkit-unassigned] [Bug 105230] New: [Graphics] PathTraversalState.cpp does too many sqrts!

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Dec 17 16:59:58 PST 2012


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

           Summary: [Graphics] PathTraversalState.cpp does too many sqrts!
           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: pdr at google.com
                CC: eric at webkit.org, schenney at chromium.org,
                    fmalita at chromium.org


Check out this profile of SvgCubics.html:
    62.73%  SignalSender  libm.so               [.] sqrtf
     7.08%  SignalSender  libDumpRenderTree.so  [.] WebCore::PathTraversalState::cubicBezierTo(WebCore::FloatPoint const&, WebCore::FloatPoint const&, WebCore::FloatPoint const&)
     5.95%  SignalSender  libDumpRenderTree.so  [.] WebCore::CubicBezier::split(WebCore::CubicBezier&, WebCore::CubicBezier&) const
     4.70%  SignalSender  libDumpRenderTree.so  [.] WebCore::distanceLine(WebCore::FloatPoint const&, WebCore::FloatPoint const&)
...

And the stack version:
    62.73%  SignalSender  libm.so               [.] sqrtf
            |
            --- WebCore::PathTraversalState::cubicBezierTo(WebCore::FloatPoint const&, WebCore::FloatPoint const&, WebCore::FloatPoint const&)
                WebCore::pathLengthApplierFunction(void*, WebCore::PathElement const*)
                WebCore::Path::apply(void*, void (*)(void*, WebCore::PathElement const*)) const
               |          
               |--50.53%-- WebCore::Path::pointAtLength(float, bool&) const
               |          WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath(WebCore::SVGInlineTextBox*, WebCore::RenderSVGInlineText*, WebCore::RenderStyle const*)
               |          WebCore::SVGTextLayoutEngine::layoutInlineTextBox(WebCore::SVGInlineTextBox*)
...


62% of the time spent in sqrtf! There may be some low hanging fruit here, such as working with squared length values in curveLength(...) or consolidating distanceLine(...) calls so only a single sqrt is needed in approximateDistance().

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