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