Skip to content

Commit d6b5ffe

Browse files
authored
Display non-standard params on summary page (#469)
Make sure we better highlight non default params since they affect the default score. - Display non-default params table in the summary view - Simplify defaultParams creation code a bit - Rebuild news-next since params.mjs changed
1 parent 4dfa8fa commit d6b5ffe

17 files changed

+147
-101
lines changed

index.html

+17
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,23 @@ <h1>Score</h1>
8181
<div class="section-grid">
8282
<h1 class="section-header">Detailed Results</h1>
8383
<div class="section-content all-metric-results">
84+
<div class="non-standard-params">
85+
<h2>Non-standard Parameters</h2>
86+
<p>
87+
Speedometer ran with non-standard parameters.<br />
88+
The results are likely not comparable to default runs.
89+
</p>
90+
<table id="non-standard-params-table">
91+
<thead>
92+
<tr>
93+
<th>Param</th>
94+
<th>Value</th>
95+
<th>Default</th>
96+
</tr>
97+
</thead>
98+
<tbody></tbody>
99+
</table>
100+
</div>
84101
<div class="aggregated-metric-result">
85102
<h2>Aggregate Metric</h2>
86103
<div id="geomean-chart"></div>

resources/main.css

+38-4
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,44 @@ section#instructions .section-content > * {
496496
flex-direction: column;
497497
}
498498

499+
section#details h1 {
500+
margin-bottom: 10px;
501+
}
502+
503+
section#details .non-standard-params {
504+
display: none;
505+
text-align: center;
506+
margin-bottom: 2em;
507+
}
508+
509+
section#details .non-standard-params h2 {
510+
color: var(--highlight);
511+
}
512+
513+
#non-standard-params-table {
514+
border-collapse: collapse;
515+
text-align: left;
516+
display: inline-block;
517+
}
518+
519+
#non-standard-params-table tr {
520+
padding: 2px;
521+
}
522+
523+
#non-standard-params-table thead th {
524+
border-bottom: 1px solid var(--foreground);
525+
}
526+
527+
#non-standard-params-table tbody td {
528+
font-weight: normal;
529+
text-align: left;
530+
}
531+
532+
#non-standard-params-table thead th,
533+
#non-standard-params-table tbody td {
534+
padding: 0.1em 0.3em;
535+
}
536+
499537
section#details .all-metric-results {
500538
flex: auto;
501539
overflow-y: auto;
@@ -513,10 +551,6 @@ section#details .arithmetic-mean > label {
513551
margin-right: 10px;
514552
}
515553

516-
section#details h1 {
517-
margin-bottom: 10px;
518-
}
519-
520554
section#details .metric {
521555
margin: 0px 0 10px 0;
522556
display: inline-block;

resources/main.mjs

+29-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { BenchmarkRunner } from "./benchmark-runner.mjs";
22
import * as Statistics from "./statistics.mjs";
33
import { Suites } from "./tests.mjs";
44
import { renderMetricView } from "./metric-ui.mjs";
5-
import { params } from "./shared/params.mjs";
5+
import { defaultParams, params } from "./shared/params.mjs";
66
import { createDeveloperModeContainer } from "./developer-mode.mjs";
77

88
// FIXME(camillobruni): Add base class
@@ -243,6 +243,7 @@ class MainBenchmarkClient {
243243
}
244244

245245
_populateDetailedResults(metrics) {
246+
this._populateNonStandardParams();
246247
const trackHeight = 24;
247248
document.documentElement.style.setProperty("--metrics-line-height", `${trackHeight}px`);
248249
const plotWidth = (params.viewport.width - 120) / 2;
@@ -290,6 +291,33 @@ class MainBenchmarkClient {
290291
csvLink.setAttribute("download", `${filePrefix}.csv`);
291292
}
292293

294+
_populateNonStandardParams() {
295+
if (params === defaultParams)
296+
return;
297+
const paramsDiff = [];
298+
const usedSearchparams = params.toSearchParamsObject();
299+
const defaultSearchParams = defaultParams.toCompleteSearchParamsObject(false);
300+
for (const [key, value] of usedSearchparams.entries()) {
301+
if (key === "developerMode")
302+
continue;
303+
const defaultValue = defaultSearchParams.get(key);
304+
if (value !== defaultValue)
305+
paramsDiff.push({ key, value, defaultValue });
306+
}
307+
if (paramsDiff.length === 0)
308+
return;
309+
const body = document.createElement("tbody");
310+
for (const { key, value, defaultValue } of paramsDiff) {
311+
const row = body.insertRow();
312+
row.insertCell().textContent = key;
313+
row.insertCell().textContent = value;
314+
row.insertCell().textContent = defaultValue;
315+
}
316+
const table = document.getElementById("non-standard-params-table");
317+
table.replaceChild(body, table.tBodies[0]);
318+
document.querySelector(".non-standard-params").style.display = "block";
319+
}
320+
293321
prepareUI() {
294322
window.addEventListener("hashchange", this._hashChangeHandler.bind(this));
295323
window.addEventListener("resize", this._resizeScreeHandler.bind(this));
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="./_next/static/css/a0dca1379a01e5cf.css" as="style"/><link rel="stylesheet" href="./_next/static/css/a0dca1379a01e5cf.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="./_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="./_next/static/chunks/webpack-e50e9853db18b759.js" defer=""></script><script src="./_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="./_next/static/chunks/main-2ba37e62325cc71b.js" defer=""></script><script src="./_next/static/chunks/pages/_app-77983e68be50f72a.js" defer=""></script><script src="./_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="./_next/static/tdun_naEsLSWD7CGin1GQ/_buildManifest.js" defer=""></script><script src="./_next/static/tdun_naEsLSWD7CGin1GQ/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><div id="settings-container"></div><div id="notifications-container"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"tdun_naEsLSWD7CGin1GQ","assetPrefix":".","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="./_next/static/css/a0dca1379a01e5cf.css" as="style"/><link rel="stylesheet" href="./_next/static/css/a0dca1379a01e5cf.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="./_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="./_next/static/chunks/webpack-e50e9853db18b759.js" defer=""></script><script src="./_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="./_next/static/chunks/main-2ba37e62325cc71b.js" defer=""></script><script src="./_next/static/chunks/pages/_app-4fe6038a10d156ec.js" defer=""></script><script src="./_next/static/chunks/pages/_error-54de1933a164a1ff.js" defer=""></script><script src="./_next/static/slmX88Sy3MO0SLK8cVHnz/_buildManifest.js" defer=""></script><script src="./_next/static/slmX88Sy3MO0SLK8cVHnz/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><div id="settings-container"></div><div id="notifications-container"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"slmX88Sy3MO0SLK8cVHnz","assetPrefix":".","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>

resources/newssite/news-next/dist/_next/static/chunks/553-29fd8c03a09c7b37.js

+32
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/newssite/news-next/dist/_next/static/chunks/743-fd706aeabb7828e3.js

-32
This file was deleted.

resources/newssite/news-next/dist/_next/static/chunks/pages/_app-77983e68be50f72a.js resources/newssite/news-next/dist/_next/static/chunks/pages/_app-4fe6038a10d156ec.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/newssite/news-next/dist/_next/static/chunks/pages/index-7052462c4e106c39.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/newssite/news-next/dist/_next/static/chunks/pages/index-ca407dccff56c060.js

-1
This file was deleted.

resources/newssite/news-next/dist/_next/static/css/2cf5163b53bb0adb.css

-1
This file was deleted.

resources/newssite/news-next/dist/_next/static/css/69253d842fd3fbfd.css

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/newssite/news-next/dist/_next/static/slmX88Sy3MO0SLK8cVHnz/_buildManifest.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/newssite/news-next/dist/_next/static/tdun_naEsLSWD7CGin1GQ/_buildManifest.js

-1
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="./_next/static/css/a0dca1379a01e5cf.css" as="style"/><link rel="stylesheet" href="./_next/static/css/a0dca1379a01e5cf.css" data-n-g=""/><link rel="preload" href="./_next/static/css/2cf5163b53bb0adb.css" as="style"/><link rel="stylesheet" href="./_next/static/css/2cf5163b53bb0adb.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="./_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="./_next/static/chunks/webpack-e50e9853db18b759.js" defer=""></script><script src="./_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="./_next/static/chunks/main-2ba37e62325cc71b.js" defer=""></script><script src="./_next/static/chunks/pages/_app-77983e68be50f72a.js" defer=""></script><script src="./_next/static/chunks/743-fd706aeabb7828e3.js" defer=""></script><script src="./_next/static/chunks/pages/index-ca407dccff56c060.js" defer=""></script><script src="./_next/static/tdun_naEsLSWD7CGin1GQ/_buildManifest.js" defer=""></script><script src="./_next/static/tdun_naEsLSWD7CGin1GQ/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><div id="settings-container"></div><div id="notifications-container"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"tdun_naEsLSWD7CGin1GQ","assetPrefix":".","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="./_next/static/css/a0dca1379a01e5cf.css" as="style"/><link rel="stylesheet" href="./_next/static/css/a0dca1379a01e5cf.css" data-n-g=""/><link rel="preload" href="./_next/static/css/69253d842fd3fbfd.css" as="style"/><link rel="stylesheet" href="./_next/static/css/69253d842fd3fbfd.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="./_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="./_next/static/chunks/webpack-e50e9853db18b759.js" defer=""></script><script src="./_next/static/chunks/framework-2c79e2a64abdb08b.js" defer=""></script><script src="./_next/static/chunks/main-2ba37e62325cc71b.js" defer=""></script><script src="./_next/static/chunks/pages/_app-4fe6038a10d156ec.js" defer=""></script><script src="./_next/static/chunks/553-29fd8c03a09c7b37.js" defer=""></script><script src="./_next/static/chunks/pages/index-7052462c4e106c39.js" defer=""></script><script src="./_next/static/slmX88Sy3MO0SLK8cVHnz/_buildManifest.js" defer=""></script><script src="./_next/static/slmX88Sy3MO0SLK8cVHnz/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><div id="settings-container"></div><div id="notifications-container"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"slmX88Sy3MO0SLK8cVHnz","assetPrefix":".","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>

resources/newssite/news-next/package-lock.json

+11-50
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

resources/shared/params.mjs

+14-8
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,14 @@ export class Params {
146146
return shuffleSeed;
147147
}
148148

149-
toSearchParamsObject() {
149+
toCompleteSearchParamsObject() {
150+
return this.toSearchParamsObject(false);
151+
}
152+
153+
toSearchParamsObject(filter = true) {
150154
const rawParams = { __proto__: null };
151155
for (const [key, value] of Object.entries(this)) {
152-
if (value === defaultParams[key])
156+
if (filter && value === defaultParams[key])
153157
continue;
154158
rawParams[key] = value;
155159
}
@@ -169,11 +173,13 @@ export class Params {
169173

170174
export const defaultParams = new Params();
171175

172-
const searchParams = new URLSearchParams(typeof window !== "undefined" ? window.location.search : undefined);
173-
let maybeCustomParams = new Params();
174-
try {
175-
maybeCustomParams = new Params(searchParams);
176-
} catch (e) {
177-
console.error("Invalid URL Param", e, "\nUsing defaults as fallback:", maybeCustomParams);
176+
let maybeCustomParams = defaultParams;
177+
if (globalThis?.location?.search) {
178+
const searchParams = new URLSearchParams(globalThis.location.search);
179+
try {
180+
maybeCustomParams = new Params(searchParams);
181+
} catch (e) {
182+
console.error("Invalid URL Param", e, "\nUsing defaults as fallback:", maybeCustomParams);
183+
}
178184
}
179185
export const params = maybeCustomParams;

0 commit comments

Comments
 (0)