- to help developers to avoid common mistakes,
- to help researchers develop performance-related tools and techniques that address relevant problems, and
#Requirements We run all experiments on a machine with a Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz and 16GB RAM.
- To experiment with issues that run on server-side environments: node.js environment, and/or io.js. We run experiments on node v0.10.37 and v0.12 and io.js 3.2.0. To switch between different versions of node.js and io.js, we use nvm.
- Client-side issues can be run in Chrome or Firefox. We reproduce client-side issues in: Firefox 24, 31, 39 and Chrome 17, 29, 42. All releases of Firefox can be found at: https://ftp.mozilla.org/pub/firefox/releases/ and we downloaded all Chrome versions from: http://www.oldapps.com/google_chrome.php.
npm install ```. This will install jsexecutor with all dependencies.
#Run Experiments ##To reproduce server-side performance issues:
jsexecutor <issue path>/test_case_before.js <issue path>/test_case_after.js Nvm Nwarmup Nmeasure 0.9
Nvm: the number of repeadely launched VM instances
Nwarmup: the number of test repetitions to warmup JIT compiler
Nmeasure: number of test repetitions collected as an input to statistical test
We use the following values in our experiments:
Nvm = 5, Nwarmup=5, Nmeasure=10
Example of reproducing perf issue that runs in server environments:
jsexecutor serverIssues/ChalkIssues/issues/issue_27a/test_case_before.js serverIssues/ChalkIssues/issues/issue_27a/test_case_after.js 5 5 10 0.9
##To reproduce client-side performance issues:
node browserJsExecutor.js <command to run browser> <issue path> Nvm
Nvm: the number of repeadely launched VM instances. Values
Nwarmup = 5 and Nmeasure =10are hardcoded, and the default value for
Nvm = 5
Examples of reproducing perf issue in Chrome and Firefox:
node browserJsExecutor.js google-chrome clientIssues/AngularIssues/issues/issue_4359/ 5
node browserJsExecutor.js firefox clientIssues/AngularIssues/issues/issue_4359/ 5