mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-30 12:27:29 +09:00
Add JIT warm-up threshold preferences for baseline and ion compilation
This commit is contained in:
parent
cc73e1f171
commit
6f4da14ee2
2 changed files with 24 additions and 2 deletions
|
|
@ -1426,6 +1426,10 @@ ReloadPrefsCallback(const char* pref, void* data)
|
||||||
bool useBaselineEager = Preferences::GetBool(JS_OPTIONS_DOT_STR
|
bool useBaselineEager = Preferences::GetBool(JS_OPTIONS_DOT_STR
|
||||||
"baselinejit.unsafe_eager_compilation");
|
"baselinejit.unsafe_eager_compilation");
|
||||||
bool useIonEager = Preferences::GetBool(JS_OPTIONS_DOT_STR "ion.unsafe_eager_compilation");
|
bool useIonEager = Preferences::GetBool(JS_OPTIONS_DOT_STR "ion.unsafe_eager_compilation");
|
||||||
|
int32_t baselineWarmUpThreshold = Preferences::GetInt(JS_OPTIONS_DOT_STR
|
||||||
|
"baselinejit.threshold", -1);
|
||||||
|
int32_t ionWarmUpThreshold = Preferences::GetInt(JS_OPTIONS_DOT_STR
|
||||||
|
"ion.threshold", -1);
|
||||||
|
|
||||||
sDiscardSystemSource = Preferences::GetBool(JS_OPTIONS_DOT_STR "discardSystemSource");
|
sDiscardSystemSource = Preferences::GetBool(JS_OPTIONS_DOT_STR "discardSystemSource");
|
||||||
|
|
||||||
|
|
@ -1472,10 +1476,23 @@ ReloadPrefsCallback(const char* pref, void* data)
|
||||||
|
|
||||||
JS_SetParallelParsingEnabled(cx, parallelParsing);
|
JS_SetParallelParsingEnabled(cx, parallelParsing);
|
||||||
JS_SetOffthreadIonCompilationEnabled(cx, offthreadIonCompilation);
|
JS_SetOffthreadIonCompilationEnabled(cx, offthreadIonCompilation);
|
||||||
|
|
||||||
|
// -1 means "use engine default".
|
||||||
|
if (baselineWarmUpThreshold < -1)
|
||||||
|
baselineWarmUpThreshold = -1;
|
||||||
|
if (ionWarmUpThreshold < -1)
|
||||||
|
ionWarmUpThreshold = -1;
|
||||||
|
|
||||||
|
// Eager compilation prefs still override threshold prefs.
|
||||||
|
if (useBaselineEager)
|
||||||
|
baselineWarmUpThreshold = 0;
|
||||||
|
if (useIonEager)
|
||||||
|
ionWarmUpThreshold = 0;
|
||||||
|
|
||||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_BASELINE_WARMUP_TRIGGER,
|
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_BASELINE_WARMUP_TRIGGER,
|
||||||
useBaselineEager ? 0 : -1);
|
baselineWarmUpThreshold);
|
||||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_WARMUP_TRIGGER,
|
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_WARMUP_TRIGGER,
|
||||||
useIonEager ? 0 : -1);
|
ionWarmUpThreshold);
|
||||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_UNBOXED_OBJECTS,
|
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_UNBOXED_OBJECTS,
|
||||||
unboxedObjects);
|
unboxedObjects);
|
||||||
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_INLINING,
|
JS_SetGlobalJitCompilerOption(cx, JSJITCOMPILER_ION_INLINING,
|
||||||
|
|
|
||||||
|
|
@ -1265,6 +1265,11 @@ pref("javascript.options.unboxed_objects", false);
|
||||||
pref("javascript.options.baselinejit", true);
|
pref("javascript.options.baselinejit", true);
|
||||||
pref("javascript.options.ion", true);
|
pref("javascript.options.ion", true);
|
||||||
pref("javascript.options.ion.inlining", true);
|
pref("javascript.options.ion.inlining", true);
|
||||||
|
// JIT warm-up thresholds (-1 keeps engine defaults).
|
||||||
|
// Lower values can improve sustained throughput on large script bundles
|
||||||
|
// (e.g. React/jQuery-heavy apps) at some startup compile cost.
|
||||||
|
pref("javascript.options.baselinejit.threshold", 8);
|
||||||
|
pref("javascript.options.ion.threshold", 80);
|
||||||
pref("javascript.options.asmjs", true);
|
pref("javascript.options.asmjs", true);
|
||||||
pref("javascript.options.wasm", true);
|
pref("javascript.options.wasm", true);
|
||||||
// wasm jit crashes in 32bit builds because of 64bit casts so
|
// wasm jit crashes in 32bit builds because of 64bit casts so
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue