RESOLVED FIXED 94990
Share immutable ElementAttributeData between elements with identical attributes.
https://bugs.webkit.org/show_bug.cgi?id=94990
Summary Share immutable ElementAttributeData between elements with identical attributes.
Andreas Kling
Reported Saturday, August 25, 2012 1:53:48 AM UTC
Attachments
Love letter to EWS (9.52 KB, patch)
2012-08-24 18:54 PDT, Andreas Kling
buildbot: commit-queue-
Love letter to EWS + cheesy GCC buildfix (9.49 KB, patch)
2012-08-24 19:46 PDT, Andreas Kling
no flags
Patch!!11 (11.93 KB, patch)
2012-09-03 09:42 PDT, Andreas Kling
koivisto: review+
Andreas Kling
Comment 1 Saturday, August 25, 2012 2:54:51 AM UTC
Created attachment 160542 [details] Love letter to EWS
Build Bot
Comment 2 Saturday, August 25, 2012 3:18:41 AM UTC
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
Early Warning System Bot
Comment 3 Saturday, August 25, 2012 3:21:22 AM UTC
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
Andreas Kling
Comment 4 Saturday, August 25, 2012 3:46:38 AM UTC
Created attachment 160545 [details] Love letter to EWS + cheesy GCC buildfix
Andreas Kling
Comment 5 Monday, September 3, 2012 5:42:55 PM UTC
Created attachment 161939 [details] Patch!!11
Andreas Kling
Comment 6 Monday, September 3, 2012 7:21:11 PM UTC
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.
Antti Koivisto
Comment 7 Monday, September 3, 2012 9:54:18 PM UTC
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.
Andreas Kling
Comment 8 Tuesday, September 4, 2012 3:19:19 AM UTC
Andreas Kling
Comment 9 Tuesday, September 4, 2012 1:34:10 PM UTC
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.
Note You need to log in before you can comment on or make changes to this bug.