[webkit-changes] [WebKit/WebKit] 0481f3: Stop atomizing all-whitespace strings when parsing...

Chris Dumez noreply at github.com
Wed Feb 8 14:46:27 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0481f360769fc8d580a499ba543b661ac884e79a
      https://github.com/WebKit/WebKit/commit/0481f360769fc8d580a499ba543b661ac884e79a
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-02-08 (Wed, 08 Feb 2023)

  Changed paths:
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/Document.h
    M Source/WebCore/html/parser/HTMLConstructionSite.cpp
    M Source/WebCore/html/parser/HTMLConstructionSite.h
    M Source/WebCore/html/parser/HTMLTreeBuilder.cpp
    M Source/WebCore/html/parser/HTMLTreeBuilder.h

  Log Message:
  -----------
  Stop atomizing all-whitespace strings when parsing HTML
https://bugs.webkit.org/show_bug.cgi?id=251924

Reviewed by Ryosuke Niwa.

Stop atomizing all-whitespace strings when parsing HTML. This is very CPU
intensive on Speedometer despite our optimizations.

Not atomizing those whitespace strings simplifies our code quite a bit and
is a confirmed 0.85% progression on Speedometer. It also shows as neutral on
both Membuster and PLUM.

Blink already made this change in:
https://chromium-review.googlesource.com/c/chromium/src/+/4128925

* Source/WebCore/dom/Document.cpp:
* Source/WebCore/dom/Document.h:
(WebCore::Document::whitespaceCache): Deleted.
* Source/WebCore/html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::WhitespaceCache::codeForString): Deleted.
(WebCore::WhitespaceCache::lookup): Deleted.
* Source/WebCore/html/parser/HTMLConstructionSite.h:
(WebCore::WhitespaceCache::WhitespaceCache): Deleted.
* Source/WebCore/html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertPhoneNumberLink):
(WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
(WebCore::HTMLTreeBuilder::defaultForInTableText):

Canonical link: https://commits.webkit.org/260039@main




More information about the webkit-changes mailing list