[Webkit-unassigned] [Bug 98800] RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 11 13:51:20 PDT 2012


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





--- Comment #6 from Eric Seidel <eric at webkit.org>  2012-10-11 13:52:01 PST ---
I think there are various ways that we could fix this.

N=number of regions, M= number of spans per region.

1. create a form of the union() operator which was self-modifying.  That would allow us to do only N*M span copies instead of our current approximately (N*M)^2.

2. pre-allocate span/segment vectors of the correct size.  That would make us have N vector allocations, instead of the current N*ln(M).

3. lazily turn a list of rects into a Region, using a Vector<IntRect> instead of the Region for the map which could eliminate all unnecessary span/segment copies. :)

4. fix bug 84393 or similar to avoid doing this operation so often.

5. find a way to turn off the OverlapMap for this (and similar) scenarios, since Simon says it shouldn't buy us anything in this example.

I suspect we'll end up doing a combination of the above.  I'm happy to file additional bugs if that would be helpful.

I've stared at the Region code enough this afternoon that I suspect I could execute on 1 or 2 and possibly 3.  But I also suspect that Anders being Mr. Region, would do a better job than I would, assuming he has the time to do so.

It's also possible that 6. we could temporarily disable the OverlayMap if it's not buying us much?  I don't really know what it does, so that one is a shot in the dark. :)

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