[webkit-changes] [WebKit/WebKit] c323bd: [JSC] Make profiling check-pointing longer for meg...
Yusuke Suzuki
noreply at github.com
Fri Aug 11 10:40:53 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: c323bd22eabf78d8dcf13b84666c8bb83855444d
https://github.com/WebKit/WebKit/commit/c323bd22eabf78d8dcf13b84666c8bb83855444d
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-08-11 (Fri, 11 Aug 2023)
Changed paths:
M Source/JavaScriptCore/bytecode/CodeBlock.cpp
M Source/JavaScriptCore/bytecode/CodeBlock.h
M Source/JavaScriptCore/bytecode/ExecutionCounter.cpp
M Source/JavaScriptCore/bytecode/ExecutionCounter.h
M Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp
M Source/JavaScriptCore/runtime/OptionsList.h
Log Message:
-----------
[JSC] Make profiling check-pointing longer for mega functions
https://bugs.webkit.org/show_bug.cgi?id=260010
rdar://113668308
Reviewed by Justin Michaud.
While we designed our profiling collection with "they are cheap" assumption, this is not true for some mega-sized functions.
There are some mega-sized functions, which can be generated by toolings etc., has massive amount of ValueProfiles, and causing
very long stop for profile update.
In this patch, we attempt to avoid this pathological case. When function size exceeds the threshold, we categorize it as mega-sized,
and we relax maximumExecutionCountsBetweenCheckpoints more larger. Because we do profiling update on each checkpoint, making it longer
means less frequent profiling update.
* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::optimizationThresholdScalingFactor const):
(JSC::CodeBlock::optimizationThresholdScalingFactor): Deleted.
* Source/JavaScriptCore/bytecode/CodeBlock.h:
* Source/JavaScriptCore/bytecode/ExecutionCounter.cpp:
(JSC::maximumExecutionCountsBetweenCheckpoints):
(JSC::ExecutionCounter<countingVariant>::hasCrossedThreshold const):
(JSC::ExecutionCounter<countingVariant>::setThreshold):
* Source/JavaScriptCore/bytecode/ExecutionCounter.h:
(JSC::ExecutionCounter::clippedThreshold):
(JSC::ExecutionCounter::maximumExecutionCountsBetweenCheckpoints): Deleted.
* Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::handleExitCounts):
* Source/JavaScriptCore/runtime/OptionsList.h:
Canonical link: https://commits.webkit.org/266819@main
More information about the webkit-changes
mailing list