@@ -35,13 +35,31 @@ function regroupResults(results) {
3535 if (results[i].group) {
3636
3737 var reorged = {
38− count: results[i].count
38+ name: results[i].name
39+ , link: results[i].link
40+ , count: results[i].count
3941 , fps: results[i].frames.fps
4042 , timeToFirstPaintMS: results[i].perf.TimeToFirstPaintMS
4143 , nodes: results[i].perf.Nodes
42− , layoutSeconds: results[i].perf.LayoutDuration
43− , recalcStyleSeconds: results[i].perf.RecalcStyleDuration
44− , scriptDurationSeconds: results[i].perf.ScriptDuration
44+ , coldRender: {
45+ layoutSeconds: results[i].perf.LayoutDuration
46+ , recalcStyleSeconds: results[i].perf.RecalcStyleDuration
47+ , scriptDurationSeconds: results[i].perf.ScriptDuration
48+
49+ }
50+ , warmRender: {
51+ layoutSeconds: results[i].afterRefresh.LayoutDuration
52+ , recalcStyleSeconds: results[i].afterRefresh.RecalcStyleDuration
53+ , scriptDurationSeconds: results[i].afterRefresh.ScriptDuration
54+
55+ }
56+ , extendedRender: {
57+ layoutSeconds: results[i].afterAnimation.LayoutDuration
58+ , recalcStyleSeconds: results[i].afterAnimation.RecalcStyleDuration
59+ , scriptDurationSeconds: results[i].afterAnimation.ScriptDuration
60+
61+ }
62+
4563 }
4664 if (results[i].group in regrouped) {
4765 regrouped[results[i].group].results.push(reorged)
@@ -58,8 +76,8 @@ var contain = [{ module: "Contain", group: "html", count: 1024, value: "viewHtml
5876 , { module: "Contain", group: "contain", count: 128, value: "viewHtmlContain8192" }]
5977
6078
61−async function write_results(allResults) {
62− var resultsDir = "benchmarks/results"
79+async function writeResults(allResults, resultsDir, name) {
80+
6381 if (!fs.existsSync(resultsDir)) {
6482 fs.mkdirSync(resultsDir);
6583 }
@@ -68,7 +86,7 @@ async function write_results(allResults) {
6886 // we embed the compiled js to avoid having to start a server to read the app.
6987 await compileToString(["./src/View/Results.elm"], { optimize: true, cwd: "./benchmarks" }).then(function (compiled_elm_code) {
7088 const compiled = eval(`\`${template}\``)
71− fs.writeFileSync(`./${resultsDir}/1.1.1-cand.html`, compiled)
89+ fs.writeFileSync(`./${resultsDir}/${name}/index.html`, compiled)
7290 });
7391
7492 // fs.writeFileSync(`./${resultsDir}/1.1.1-candidate-optimized.json`, results)
@@ -82,40 +100,40 @@ async function write_results(allResults) {
82100 var instances = [
83101 { module: "Baseline", group: null, value: "bench" }
84102 , { 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" }
86104 , { module: "ManyElements", group: "elmUI", count: 2048, value: "elmUI2048" }
87105 , { 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" }
89107 , { module: "ManyElements", group: "elmUI", count: 4096, value: "elmUI4096" }
90− , { module: "ManyElements", group: "elmUI", count: 512, value: "elmUI512" }
91− , { module: "ManyElements", group: "elmUI", count: 64, value: "elmUI64" }
108+ // , { module: "ManyElements", group: "elmUI", count: 512, value: "elmUI512" }
109+ // , { module: "ManyElements", group: "elmUI", count: 64, value: "elmUI64" }
92110 , { module: "ManyElements", group: "elmUI", count: 8192, value: "elmUI8192" }
93111 , { 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" }
95113 , { module: "ManyElements", group: "elmUIVCSS", count: 2048, value: "elmUIVCSS2048" }
96114 , { 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" }
98116 , { module: "ManyElements", group: "elmUIVCSS", count: 4096, value: "elmUIVCSS4096" }
99− , { module: "ManyElements", group: "elmUIVCSS", count: 512, value: "elmUIVCSS512" }
100− , { module: "ManyElements", group: "elmUIVCSS", count: 64, value: "elmUIVCSS64" }
117+ // , { module: "ManyElements", group: "elmUIVCSS", count: 512, value: "elmUIVCSS512" }
118+ // , { module: "ManyElements", group: "elmUIVCSS", count: 64, value: "elmUIVCSS64" }
101119 , { module: "ManyElements", group: "elmUIVCSS", count: 8192, value: "elmUIVCSS8192" }
102120 , { 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" }
104122 , { module: "ManyElements", group: "viewHtml", count: 2048, value: "viewHtml2048" }
105123 , { 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" }
107125 , { module: "ManyElements", group: "viewHtml", count: 4096, value: "viewHtml4096" }
108− , { module: "ManyElements", group: "viewHtml", count: 512, value: "viewHtml512" }
109− , { module: "ManyElements", group: "viewHtml", count: 64, value: "viewHtml64" }
126+ // , { module: "ManyElements", group: "viewHtml", count: 512, value: "viewHtml512" }
127+ // , { module: "ManyElements", group: "viewHtml", count: 64, value: "viewHtml64" }
110128 , { module: "ManyElements", group: "viewHtml", count: 8192, value: "viewHtml8192" }
111129 , { 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" }
113131 , { module: "ManyElements", group: "viewInline", count: 2048, value: "viewInline2048" }
114132 , { 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" }
116134 , { module: "ManyElements", group: "viewInline", count: 4096, value: "viewInline4096" }
117− , { module: "ManyElements", group: "viewInline", count: 512, value: "viewInline512" }
118− , { module: "ManyElements", group: "viewInline", count: 64, value: "viewInline64" }
135+ // , { module: "ManyElements", group: "viewInline", count: 512, value: "viewInline512" }
136+ // , { module: "ManyElements", group: "viewInline", count: 64, value: "viewInline64" }
119137 , { module: "ManyElements", group: "viewInline", count: 8192, value: "viewInline8192" }
120138 ]
121139
@@ -131,20 +149,28 @@ async function write_results(allResults) {
131149 }
132150
133151 var allResults = []
152+ const resultsDir = "benchmarks/results"
153+ const resultName = "1.2-cand"
154+
155+ if (!fs.existsSync(`./${resultsDir}/${resultName}/instances/`)) {
156+ fs.mkdirSync(`./${resultsDir}/${resultName}/instances/`, { recursive: true });
157+ }
158+
134159
135160 for (var i = 0; i < instances.length; i++) {
136161 var item = instances[i]
137162 write_entrypoint(item)
163+ const test_file = `${resultsDir}/${resultName}/instances/${item.value}.html`
138164 var template = fs.readFileSync("./benchmarks/runtime/template/run.html")
139165 var cssom = fs.readFileSync("./experiments/virtual-css/cssom.js")
140166 // we embed the compiled js to avoid having to start a server to read the app.
141167 await compileToString(["tmp/Main.elm"], { optimize: true, cwd: "./benchmarks" }).then(function (compiled_elm_code) {
142168 const compiled = eval(`\`${template}\``)
143− fs.writeFileSync("./tmp/run.html", compiled)
169+ fs.writeFileSync(test_file, compiled)
144170 });
145171
146172 const page = await browser.newPage();
147− const results = await benchPage(page);
173+ const results = await benchPage(page, test_file);
148174 results.group = item.group
149175 results.count = item.count
150176 await page.close()
@@ -155,6 +181,6 @@ async function write_results(allResults) {
155181
156182 allResults = regroupResults(allResults)
157183
158− write_results(allResults)
184+ writeResults(allResults, resultsDir, resultName)
159185
160186})();