We can gain additional sharing goodness from leaving the cache open for a bit, allowing HTML fragments inserted post-parse to use it.
Created attachment 176915 [details] Patch
Comment on attachment 176915 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=176915&action=review > Source/WebCore/dom/DocumentParsingCaches.h:40 > +class DocumentParsingCaches { I don't like the name but I'm lacking good suggestions.
Comment on attachment 176915 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=176915&action=review > Source/WebCore/dom/Document.cpp:4425 > + static const int timeToKeepParsingCachesAliveAfterParsingFinishedInSeconds = 10; > + m_parsingCachesClearTimer.startOneShot(timeToKeepParsingCachesAliveAfterParsingFinishedInSeconds); Could use a "why" comment here.
Created attachment 177066 [details] Patch
Comment on attachment 177066 [details] Patch Attachment 177066 [details] did not pass qt-ews (qt): Output: http://queues.webkit.org/results/15067359
Comment on attachment 177066 [details] Patch Attachment 177066 [details] did not pass qt-wk2-ews (qt): Output: http://queues.webkit.org/results/15062604
Comment on attachment 177066 [details] Patch Attachment 177066 [details] did not pass efl-ews (efl): Output: http://queues.webkit.org/results/15054641
Created attachment 177074 [details] Patch for landing With my eyes open this time..
Comment on attachment 177074 [details] Patch for landing Clearing flags on attachment: 177074 Committed r136334: <http://trac.webkit.org/changeset/136334>
All reviewed patches have been landed. Closing bug.
I think this caused a ~12% improvement in dom_perf/CreateNodes. Hard to tell. It could also be http://trac.webkit.org/changeset/136328/ maybe? http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dom_perf/report.html?graph=CreateNodes&trace=score&rev=170979&history=150
(In reply to comment #11) > I think this caused a ~12% improvement in dom_perf/CreateNodes. > > Hard to tell. It could also be http://trac.webkit.org/changeset/136328/ maybe? > > http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/dom_perf/report.html?graph=CreateNodes&trace=score&rev=170979&history=150 Should be this one! Some of the CreateNodes subtests are using innerHTML to generate trees, which benefits from this change since they can now re-use the same ElementAttributeData. :)