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
Do not set setStatus and monitorRunDependencies 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 removes setStatus and monitorRunDependencies 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