You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Set setStatus: null and monitorRunDependencies: null explicitly for wasm tests
emscripten generates the following code,
```
if (Module["setStatus"]) {
Module["setStatus"]("Running...");
setTimeout(() => {
setTimeout(() => Module["setStatus"](""), 1);
doRun();
}, 1);
} else {
doRun();
}
```
And this code is ran in the first iteration of wasm benchmarks since it
includes setup code. This causes a problem since it has artificially
inserted setTimeout with 1ms.
1. It can insert 1ms wait time artificially. This is not so great since
it reduces CPU pstate randomly, causing weird perf cliff depending on
CPU's powner management instead of JS engine's quality.
2. The spec requires setTimeout to have some throttling mechanism. So we
can hit some artificial large delay more than 1ms based on how many
nestings we did before (https://webkit.org/blog/13083/speedometer-2-1/)
This patch explicitly sets setStatus and monitorRunDependencies to null
so that we will not use this `setTimeout` code path generated by emscripten.
This is already done for SpiderMonkey shell. So we expand it for the
other engines as well.
Close#118
0 commit comments