Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 75c2b6c6213dae60fe4823baa5b8b3d1272cd793
      
https://github.com/WebKit/WebKit/commit/75c2b6c6213dae60fe4823baa5b8b3d1272cd793
  Author: Alex Christensen <achristen...@apple.com>
  Date:   2025-08-04 (Mon, 04 Aug 2025)

  Changed paths:
    M Source/WTF/wtf/TZoneMalloc.h
    M Source/WebCore/dom/SerializedNode.cpp
    M Source/WebCore/dom/SerializedNode.h
    M Source/WebKit/Shared/JavaScriptEvaluationResult.cpp
    M Source/WebKit/Shared/JavaScriptEvaluationResult.h
    M Source/WebKit/Shared/JavaScriptEvaluationResult.mm
    M Source/WebKit/Shared/JavaScriptEvaluationResult.serialization.in
    M Source/WebKit/Shared/glib/JavaScriptEvaluationResultGLib.cpp

  Log Message:
  -----------
  Fix Speedometer3 regression from 297895@main
https://bugs.webkit.org/show_bug.cgi?id=296904
rdar://157213758

Reviewed by Ryosuke Niwa.

When running Speedometer3, approximately 6000 JavaScriptEvaluationResults are 
created.
Each JavaScriptEvaluationResult contains approximately 80 Value variants.
In 297895@main I introduced an allocation and several unnecessary copies of 
Value.
This undoes that and solves the problem a different way, by taking the large and
uncommon alternative of the Variant and making it a UniqueRef instead of the 
whole Variant.
This removes about a half million allocations and copies from Speedometer3.

* Source/WTF/wtf/TZoneMalloc.h:
* Source/WebCore/dom/SerializedNode.cpp:
* Source/WebCore/dom/SerializedNode.h:
* Source/WebKit/Shared/JavaScriptEvaluationResult.cpp:
(WebKit::JavaScriptEvaluationResult::JavaScriptEvaluationResult):
(WebKit::JavaScriptEvaluationResult::toAPI):
(WebKit::JavaScriptEvaluationResult::addObjectToMap):
(WebKit::JavaScriptEvaluationResult::toValue):
(WebKit::JavaScriptEvaluationResult::toJS):
(WebKit::JavaScriptEvaluationResult::toString const):
* Source/WebKit/Shared/JavaScriptEvaluationResult.h:
(WebKit::JavaScriptEvaluationResult::map const):
* Source/WebKit/Shared/JavaScriptEvaluationResult.mm:
(WebKit::JavaScriptEvaluationResult::toID):
(WebKit::JavaScriptEvaluationResult::toValue):
(WebKit::JavaScriptEvaluationResult::addObjectToMap):
* Source/WebKit/Shared/JavaScriptEvaluationResult.serialization.in:
* Source/WebKit/Shared/glib/JavaScriptEvaluationResultGLib.cpp:
(WebKit::JavaScriptEvaluationResult::addObjectToMap):
(WebKit::JavaScriptEvaluationResult::toValue):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to