+2014-05-13 Ryosuke Niwa <rniwa@webkit.org>
+
+ DYEBench should run 20 iterations in browser
+ https://bugs.webkit.org/show_bug.cgi?id=132795
+
+ Reviewed by Gavin Barraclough.
+
+ Right now, run-perf-tests runs BYEBench 4 times with different instances of DRT/WTR to get
+ a more stable time and account for differences in the runtime environment, particularly,
+ ASLR (Address Space Layout Randomization).
+
+ While we can't account for the latter effect when the benchmark is ran inside a browser,
+ we can at least run 20 iterations to get a more stable (but perhaps biased by ALSR) number.
+
+ While the sample size of 20 is statistically unsound to compute the arithmetic mean from,
+ it's MUCH better than the current sample size of 5.
+
+ * DoYouEvenBench/Full.html:
+ (benchmarkClient.iterationCount): Set the default iteration count to 20.
+ (startTest): Use benchmarkClient.iterationCount as the iteration count.
+ * DoYouEvenBench/resources/benchmark-report.js:
+ (benchmarkClient.iterationCount): Continue to use the old iteration count of 5 when ran
+ inside run-perf-tests.
+
2014-05-09 Ryosuke Niwa <rniwa@webkit.org>
DYEBench should show 95th percentile right next to the mean with ±
<!DOCTYPE html>
<html>
<head>
-<title>DoYouEvenBench v0.10</title>
+<title>DoYouEvenBench v0.11</title>
<style type="text/css">
caption { margin: 0; padding: 0; font-family: sans-serif; font-size: 1em; font-weight: bold; white-space: nowrap; }
#progressContainer { padding: 605px 0 10px 0; width: 800px; }
}
window.benchmarkClient = {
+ iterationCount: 20,
willRunTest: function () {
if (!progress) {
// We don't use the real progress element as some implementations animate it.
})();
function startTest() {
- var iterationCount = 5;
- benchmarkClient.testsCount = iterationCount * Suites.reduce(function (testsCount, suite) { return testsCount + suite.tests.length; }, 0);
+ var totalSubtestCount = Suites.reduce(function (testsCount, suite) { return testsCount + suite.tests.length; }, 0);
+ benchmarkClient.testsCount = benchmarkClient.iterationCount * totalSubtestCount;
var runner = new BenchmarkRunner(Suites, benchmarkClient);
- runner.runMultipleIterations(iterationCount);
+ runner.runMultipleIterations(benchmarkClient.iterationCount);
}
</script>
var valuesByIteration = new Array;
window.benchmarkClient = {
+ iterationCount: 5, // Use 4 different instances of DRT/WTR to run 5 iterations.
willStartFirstIteration: function (iterationCount) {
createTest = function (name, aggregator, isLastTest) {
return {