Bug 77831 - REGRESSION(r106756): 10% performance hit on DOM/Template.
: REGRESSION(r106756): 10% performance hit on DOM/Template.
Product: WebKit
Classification: Unclassified
Component: HTML DOM
: 528+ (Nightly build)
: Unspecified Unspecified
: P2 Normal
Assigned To: Andreas Kling
Depends on:
  Show dependency treegraph
Reported: 2012-02-05 03:36 PST by Andreas Kling
Modified: 2012-02-06 15:14 PST (History)
8 users (show)

See Also:

Kind of a patch (9.53 KB, patch)
2012-02-05 18:00 PST, Andreas Kling
rniwa: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Kling 2012-02-05 03:36:07 PST
The removal of CSSMappedAttributeDeclaration on bug 77820 caused a ~10% perf hit on the DOM/Template test.
This happens because the CSS values generated from presentation attributes are no longer created in the Document's CSSValuePool.
Comment 1 Andreas Kling 2012-02-05 04:54:35 PST
I'm gonna sleep on this idea, but I'm thinking we could specialize StypePropertySet for attribute styles, to share some logic with inline styles.

It would have a parent element, but wouldn't invalidateStyleAttribute() when mutating. We might also be able to use setNeedsStyleRecalc(InlineStyleChange) instead of FullStyleChange..
Comment 2 Andreas Kling 2012-02-05 18:00:32 PST
Created attachment 125547 [details]
Kind of a patch
Comment 3 Julien Chaffraix 2012-02-06 13:27:34 PST
This bug is a show-stopper for the Chromium port. This regression is likely causing http://crbug.com/112854 and preventing Chromium from rolling a new version of WebKit.

Andreas, could you make sure the fix get landed sooner rather than later?
Comment 4 Ryosuke Niwa 2012-02-06 14:12:02 PST
kling, could you land this patch ASAP? I can land on your behalf as well if you're busy for something else.
Comment 5 Andreas Kling 2012-02-06 15:14:22 PST
Committed r106863: <http://trac.webkit.org/changeset/106863>