@@ -35,13 +35,31 @@ function regroupResults(results) {
35 if (results[i].group) {
35 if (results[i].group) {
37 var reorged = {
37 var reorged = {
38+ name: results[i].name
39+ , link: results[i].link
38− count: results[i].count
40+ , count: results[i].count
39 , fps: results[i].frames.fps
41 , fps: results[i].frames.fps
40 , timeToFirstPaintMS: results[i].perf.TimeToFirstPaintMS
42 , timeToFirstPaintMS: results[i].perf.TimeToFirstPaintMS
41 , nodes: results[i].perf.Nodes
43 , nodes: results[i].perf.Nodes
42− , layoutSeconds: results[i].perf.LayoutDuration
45+ layoutSeconds: results[i].perf.LayoutDuration
43− , recalcStyleSeconds: results[i].perf.RecalcStyleDuration
46+ , recalcStyleSeconds: results[i].perf.RecalcStyleDuration
44− , scriptDurationSeconds: results[i].perf.ScriptDuration
47+ , scriptDurationSeconds: results[i].perf.ScriptDuration
51+ layoutSeconds: results[i].afterRefresh.LayoutDuration
52+ , recalcStyleSeconds: results[i].afterRefresh.RecalcStyleDuration
53+ , scriptDurationSeconds: results[i].afterRefresh.ScriptDuration
57+ layoutSeconds: results[i].afterAnimation.LayoutDuration
58+ , recalcStyleSeconds: results[i].afterAnimation.RecalcStyleDuration
59+ , scriptDurationSeconds: results[i].afterAnimation.ScriptDuration
46 if (results[i].group in regrouped) {
64 if (results[i].group in regrouped) {
47 regrouped[results[i].group].results.push(reorged)
65 regrouped[results[i].group].results.push(reorged)
@@ -58,8 +76,8 @@ var contain = [{ module: "Contain", group: "html", count: 1024, value: "viewHtml
58 , { module: "Contain", group: "contain", count: 128, value: "viewHtmlContain8192" }]
76 , { module: "Contain", group: "contain", count: 128, value: "viewHtmlContain8192" }]
61−async function write_results(allResults) {
79+async function writeResults(allResults, resultsDir, name) {
62− var resultsDir = "benchmarks/results"
80+
63 if (!fs.existsSync(resultsDir)) {
81 if (!fs.existsSync(resultsDir)) {
64 fs.mkdirSync(resultsDir);
82 fs.mkdirSync(resultsDir);
@@ -68,7 +86,7 @@ async function write_results(allResults) {
68 // we embed the compiled js to avoid having to start a server to read the app.
86 // we embed the compiled js to avoid having to start a server to read the app.
69 await compileToString(["./src/View/Results.elm"], { optimize: true, cwd: "./benchmarks" }).then(function (compiled_elm_code) {
87 await compileToString(["./src/View/Results.elm"], { optimize: true, cwd: "./benchmarks" }).then(function (compiled_elm_code) {
70 const compiled = eval(`\`${template}\``)
88 const compiled = eval(`\`${template}\``)
71− fs.writeFileSync(`./${resultsDir}/1.1.1-cand.html`, compiled)
89+ fs.writeFileSync(`./${resultsDir}/${name}/index.html`, compiled)
74 // fs.writeFileSync(`./${resultsDir}/1.1.1-candidate-optimized.json`, results)
92 // fs.writeFileSync(`./${resultsDir}/1.1.1-candidate-optimized.json`, results)
@@ -82,40 +100,40 @@ async function write_results(allResults) {
82 var instances = [
100 var instances = [
83 { module: "Baseline", group: null, value: "bench" }
101 { module: "Baseline", group: null, value: "bench" }
84 , { module: "ManyElements", group: "elmUI", count: 1024, value: "elmUI1024" }
102 , { module: "ManyElements", group: "elmUI", count: 1024, value: "elmUI1024" }
85− , { module: "ManyElements", group: "elmUI", count: 128, value: "elmUI128" }
103+ // , { module: "ManyElements", group: "elmUI", count: 128, value: "elmUI128" }
86 , { module: "ManyElements", group: "elmUI", count: 2048, value: "elmUI2048" }
104 , { module: "ManyElements", group: "elmUI", count: 2048, value: "elmUI2048" }
87 , { module: "ManyElements", group: "elmUI", count: 24, value: "elmUI24" }
105 , { module: "ManyElements", group: "elmUI", count: 24, value: "elmUI24" }
88− , { module: "ManyElements", group: "elmUI", count: 256, value: "elmUI256" }
106+ // , { module: "ManyElements", group: "elmUI", count: 256, value: "elmUI256" }
89 , { module: "ManyElements", group: "elmUI", count: 4096, value: "elmUI4096" }
107 , { module: "ManyElements", group: "elmUI", count: 4096, value: "elmUI4096" }
90− , { module: "ManyElements", group: "elmUI", count: 512, value: "elmUI512" }
108+ // , { module: "ManyElements", group: "elmUI", count: 512, value: "elmUI512" }
91− , { module: "ManyElements", group: "elmUI", count: 64, value: "elmUI64" }
109+ // , { module: "ManyElements", group: "elmUI", count: 64, value: "elmUI64" }
92 , { module: "ManyElements", group: "elmUI", count: 8192, value: "elmUI8192" }
110 , { module: "ManyElements", group: "elmUI", count: 8192, value: "elmUI8192" }
93 , { module: "ManyElements", group: "elmUIVCSS", count: 1024, value: "elmUIVCSS1024" }
111 , { module: "ManyElements", group: "elmUIVCSS", count: 1024, value: "elmUIVCSS1024" }
94− , { module: "ManyElements", group: "elmUIVCSS", count: 128, value: "elmUIVCSS128" }
112+ // , { module: "ManyElements", group: "elmUIVCSS", count: 128, value: "elmUIVCSS128" }
95 , { module: "ManyElements", group: "elmUIVCSS", count: 2048, value: "elmUIVCSS2048" }
113 , { module: "ManyElements", group: "elmUIVCSS", count: 2048, value: "elmUIVCSS2048" }
96 , { module: "ManyElements", group: "elmUIVCSS", count: 24, value: "elmUIVCSS24" }
114 , { module: "ManyElements", group: "elmUIVCSS", count: 24, value: "elmUIVCSS24" }
97− , { module: "ManyElements", group: "elmUIVCSS", count: 256, value: "elmUIVCSS256" }
115+ // , { module: "ManyElements", group: "elmUIVCSS", count: 256, value: "elmUIVCSS256" }
98 , { module: "ManyElements", group: "elmUIVCSS", count: 4096, value: "elmUIVCSS4096" }
116 , { module: "ManyElements", group: "elmUIVCSS", count: 4096, value: "elmUIVCSS4096" }
99− , { module: "ManyElements", group: "elmUIVCSS", count: 512, value: "elmUIVCSS512" }
117+ // , { module: "ManyElements", group: "elmUIVCSS", count: 512, value: "elmUIVCSS512" }
100− , { module: "ManyElements", group: "elmUIVCSS", count: 64, value: "elmUIVCSS64" }
118+ // , { module: "ManyElements", group: "elmUIVCSS", count: 64, value: "elmUIVCSS64" }
101 , { module: "ManyElements", group: "elmUIVCSS", count: 8192, value: "elmUIVCSS8192" }
119 , { module: "ManyElements", group: "elmUIVCSS", count: 8192, value: "elmUIVCSS8192" }
102 , { module: "ManyElements", group: "viewHtml", count: 1024, value: "viewHtml1024" }
120 , { module: "ManyElements", group: "viewHtml", count: 1024, value: "viewHtml1024" }
103− , { module: "ManyElements", group: "viewHtml", count: 128, value: "viewHtml128" }
121+ // , { module: "ManyElements", group: "viewHtml", count: 128, value: "viewHtml128" }
104 , { module: "ManyElements", group: "viewHtml", count: 2048, value: "viewHtml2048" }
122 , { module: "ManyElements", group: "viewHtml", count: 2048, value: "viewHtml2048" }
105 , { module: "ManyElements", group: "viewHtml", count: 24, value: "viewHtml24" }
123 , { module: "ManyElements", group: "viewHtml", count: 24, value: "viewHtml24" }
106− , { module: "ManyElements", group: "viewHtml", count: 256, value: "viewHtml256" }
124+ // , { module: "ManyElements", group: "viewHtml", count: 256, value: "viewHtml256" }
107 , { module: "ManyElements", group: "viewHtml", count: 4096, value: "viewHtml4096" }
125 , { module: "ManyElements", group: "viewHtml", count: 4096, value: "viewHtml4096" }
108− , { module: "ManyElements", group: "viewHtml", count: 512, value: "viewHtml512" }
126+ // , { module: "ManyElements", group: "viewHtml", count: 512, value: "viewHtml512" }
109− , { module: "ManyElements", group: "viewHtml", count: 64, value: "viewHtml64" }
127+ // , { module: "ManyElements", group: "viewHtml", count: 64, value: "viewHtml64" }
110 , { module: "ManyElements", group: "viewHtml", count: 8192, value: "viewHtml8192" }
128 , { module: "ManyElements", group: "viewHtml", count: 8192, value: "viewHtml8192" }
111 , { module: "ManyElements", group: "viewInline", count: 1024, value: "viewInline1024" }
129 , { module: "ManyElements", group: "viewInline", count: 1024, value: "viewInline1024" }
112− , { module: "ManyElements", group: "viewInline", count: 128, value: "viewInline128" }
130+ // , { module: "ManyElements", group: "viewInline", count: 128, value: "viewInline128" }
113 , { module: "ManyElements", group: "viewInline", count: 2048, value: "viewInline2048" }
131 , { module: "ManyElements", group: "viewInline", count: 2048, value: "viewInline2048" }
114 , { module: "ManyElements", group: "viewInline", count: 24, value: "viewInline24" }
132 , { module: "ManyElements", group: "viewInline", count: 24, value: "viewInline24" }
115− , { module: "ManyElements", group: "viewInline", count: 256, value: "viewInline256" }
133+ // , { module: "ManyElements", group: "viewInline", count: 256, value: "viewInline256" }
116 , { module: "ManyElements", group: "viewInline", count: 4096, value: "viewInline4096" }
134 , { module: "ManyElements", group: "viewInline", count: 4096, value: "viewInline4096" }
117− , { module: "ManyElements", group: "viewInline", count: 512, value: "viewInline512" }
135+ // , { module: "ManyElements", group: "viewInline", count: 512, value: "viewInline512" }
118− , { module: "ManyElements", group: "viewInline", count: 64, value: "viewInline64" }
136+ // , { module: "ManyElements", group: "viewInline", count: 64, value: "viewInline64" }
119 , { module: "ManyElements", group: "viewInline", count: 8192, value: "viewInline8192" }
137 , { module: "ManyElements", group: "viewInline", count: 8192, value: "viewInline8192" }
@@ -131,20 +149,28 @@ async function write_results(allResults) {
133 var allResults = []
151 var allResults = []
152+ const resultsDir = "benchmarks/results"
153+ const resultName = "1.2-cand"
155+ if (!fs.existsSync(`./${resultsDir}/${resultName}/instances/`)) {
156+ fs.mkdirSync(`./${resultsDir}/${resultName}/instances/`, { recursive: true });
135 for (var i = 0; i < instances.length; i++) {
160 for (var i = 0; i < instances.length; i++) {
136 var item = instances[i]
161 var item = instances[i]
137 write_entrypoint(item)
162 write_entrypoint(item)
163+ const test_file = `${resultsDir}/${resultName}/instances/${item.value}.html`
138 var template = fs.readFileSync("./benchmarks/runtime/template/run.html")
164 var template = fs.readFileSync("./benchmarks/runtime/template/run.html")
139 var cssom = fs.readFileSync("./experiments/virtual-css/cssom.js")
165 var cssom = fs.readFileSync("./experiments/virtual-css/cssom.js")
140 // we embed the compiled js to avoid having to start a server to read the app.
166 // we embed the compiled js to avoid having to start a server to read the app.
141 await compileToString(["tmp/Main.elm"], { optimize: true, cwd: "./benchmarks" }).then(function (compiled_elm_code) {
167 await compileToString(["tmp/Main.elm"], { optimize: true, cwd: "./benchmarks" }).then(function (compiled_elm_code) {
142 const compiled = eval(`\`${template}\``)
168 const compiled = eval(`\`${template}\``)
143− fs.writeFileSync("./tmp/run.html", compiled)
169+ fs.writeFileSync(test_file, compiled)
146 const page = await browser.newPage();
172 const page = await browser.newPage();
147− const results = await benchPage(page);
173+ const results = await benchPage(page, test_file);
148 results.group = item.group
174 results.group = item.group
149 results.count = item.count
175 results.count = item.count
150 await page.close()
176 await page.close()
@@ -155,6 +181,6 @@ async function write_results(allResults) {
156 allResults = regroupResults(allResults)
182 allResults = regroupResults(allResults)
158− write_results(allResults)
184+ writeResults(allResults, resultsDir, resultName)