[Webkit-unassigned] [Bug 36564] Performance regression for setting content of <text> in SVG
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sat Mar 27 01:02:57 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=36564
Nikolas Zimmermann <zimmermann at kde.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |darin at apple.com
--- Comment #13 from Nikolas Zimmermann <zimmermann at kde.org> 2010-03-27 01:02:57 PST ---
(In reply to comment #11)
> Here's a summary of what I learned about this performance regression. This
> could be helpful in attempting to fix the rest of the regression.
>
> 1. clipperBoundingBoxForRenderer() was the major source of the regression. This
> patch optimizes that function a lot, but it could probably be optimized more.
> There is a lot of overhead associated with getRenderSVGResourceById(). It would
> be better if SVGRenderStyle stored a pointer to the resource instead of just
> the ID. There should be a way to make sure these are reset whenever an id on
> the page changes.
Excellent idea! Dirk and me brainstormed several ideas as well yesterday --
it's completly clear that the ID based approach is too slow. We want to finish
the SVGResource -> RenderSVGResource transition first, then fix the performance
issues. Dirk has the patches almost completed (except for filter, where someone
else is looking into atm).
>
> 2. It might help to inline clipperBoundingBoxForRenderer(). And
> filterBoundingBoxForRenderer() and maskerBoundingBoxForRenderer() while we're
> at it.
>
> 3. Being able to cache repaint rects in RenderSVGContainer and RenderSVGRoot
> actually would NOT speed up this test case, but it would speed up other tests.
> The cached repaint rect would need to be invalidated in layout, and by changing
> the text content, this test case lays out so frequently that there would be
> nothing to gain from caching repaint rects in these classes.
There's a problem with the caching, as the render tree has no idea when
transformations change, they all just pull them from the SVG DOM every time on
paint() (see RenderPath). I am working towards a new transform handling, that
will fix that and allow us to cache those rects.
Glad you've tracked down the first performance regressions!
--
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