Summary: | Share immutable ElementAttributeData between elements with identical attributes. | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andreas Kling <kling> | ||||||||
Component: | DOM | Assignee: | Andreas Kling <kling> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | cmarcelo, koivisto, webkit.review.bot | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Attachments: |
|
Description
Andreas Kling
2012-08-24 17:53:48 PDT
Created attachment 160542 [details]
Love letter to EWS
Comment on attachment 160542 [details] Love letter to EWS Attachment 160542 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/13574935 Comment on attachment 160542 [details] Love letter to EWS Attachment 160542 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/13591469 Created attachment 160545 [details]
Love letter to EWS + cheesy GCC buildfix
Created attachment 161939 [details]
Patch!!11
I should note that there are a number of follow-up optimizations enabled by this, such as avoiding parsing the same style/class attributes more than once. Comment on attachment 161939 [details] Patch!!11 View in context: https://bugs.webkit.org/attachment.cgi?id=161939&action=review Nice. r=me > Source/WebCore/dom/Document.cpp:6178 > +class ImmutableAttributeDataCacheKey { Document is super bloaty. Would be nice to factor this a separate file/class. > Source/WebCore/dom/Document.cpp:6192 > + bool operator!=(ImmutableAttributeDataCacheKey& other) const const > Source/WebCore/dom/Document.cpp:6235 > + if (!cacheHash || cacheIterator->second) The logic here is bit strange. I suspect it could be written in a nicer way. Committed r127438: <http://trac.webkit.org/changeset/127438> Perf-o-matic results are in, looks like a 3.6% improvement on Parser/html5-full-render:malloc http://webkit-perf.appspot.com/graph.html#tests=[[6268923,2001,963028]]&sel=none&displayrange=7&datatype=running Booyakasha! @Antti: I agree that it can be factored better, I'll improve upon this in coming patches. |