summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2018-10-24 07:04:33 -0700
committerGitHub <noreply@github.com>2018-10-24 07:04:33 -0700
commit5fbe6a242c36b3836fe646ab037a03a6c80e32d8 (patch)
treeee6ede76c3e9df0899f04c7c020282f3884623b1
parentae00df73a27afbc665d0c06c5a9515413fecb101 (diff)
Clean up y-axes on benchmark page. (#1077)
-rw-r--r--website/app.js55
-rw-r--r--website/app_test.js16
2 files changed, 27 insertions, 44 deletions
diff --git a/website/app.js b/website/app.js
index b0ac3482b..5185c936a 100644
--- a/website/app.js
+++ b/website/app.js
@@ -113,15 +113,12 @@ export function createSha1List(data) {
return data.map(d => d.sha1);
}
-// Formats the byte sizes e.g. 19000 -> 18.55 KB
-// Copied from https://stackoverflow.com/a/18650828
-export function formatBytes(a, b) {
- if (0 == a) return "0 Bytes";
- var c = 1024,
- d = b || 2,
- e = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"],
- f = Math.floor(Math.log(a) / Math.log(c));
- return parseFloat((a / Math.pow(c, f)).toFixed(d)) + " " + e[f];
+export function formatMB(bytes) {
+ return Math.round(bytes / (1024 * 1024));
+}
+
+export function formatReqSec(reqPerSec) {
+ return reqPerSec / 1000;
}
/**
@@ -132,7 +129,7 @@ export function formatBytes(a, b) {
* @param {string} yLabel label of y axis
* @param {function} yTickFormat formatter of y axis ticks
*/
-function gen2(
+function generate(
id,
categories,
columns,
@@ -140,16 +137,13 @@ function gen2(
yLabel = "",
yTickFormat = null
) {
- const xFormat = {
- type: "category",
- show: false,
- categories
- };
- const yFormat = {
+ const yAxis = {
+ padding: { bottom: 0 },
+ min: 0,
label: yLabel
};
if (yTickFormat) {
- yFormat.tick = {
+ yAxis.tick = {
format: yTickFormat
};
}
@@ -165,16 +159,21 @@ function gen2(
onclick
},
axis: {
- x: xFormat,
- y: yFormat
+ x: {
+ type: "category",
+ show: false,
+ categories
+ },
+ y: yAxis
}
});
}
-export function formatSeconds(t) {
+function formatSecsAsMins(t) {
+ // TODO use d3.round()
const a = t % 60;
const min = Math.floor(t / 60);
- return a < 30 ? `${min} min` : `${min + 1} min`;
+ return a < 30 ? min : min + 1;
}
/**
@@ -207,7 +206,7 @@ export async function drawChartsFromBenchmarkData(dataUrl) {
};
function gen(id, columns, yLabel = "", yTickFormat = null) {
- gen2(
+ generate(
id,
sha1ShortList,
columns,
@@ -219,10 +218,10 @@ export async function drawChartsFromBenchmarkData(dataUrl) {
gen("#exec-time-chart", execTimeColumns, "seconds");
gen("#throughput-chart", throughputColumns, "seconds");
- gen("#req-per-sec-chart", reqPerSecColumns, "# req/sec");
- gen("#binary-size-chart", binarySizeColumns, "size", formatBytes);
- gen("#thread-count-chart", threadCountColumns, "# threads");
- gen("#syscall-count-chart", syscallCountColumns, "# syscalls");
+ gen("#req-per-sec-chart", reqPerSecColumns, "1000 req/sec", formatReqSec);
+ gen("#binary-size-chart", binarySizeColumns, "megabytes", formatMB);
+ gen("#thread-count-chart", threadCountColumns, "threads");
+ gen("#syscall-count-chart", syscallCountColumns, "syscalls");
}
/**
@@ -239,12 +238,12 @@ export async function drawChartsFromTravisData() {
const travisCompileTimeColumns = createTravisCompileTimeColumns(travisData);
const prNumberList = travisData.map(d => d.pull_request_number);
- gen2(
+ generate(
"#travis-compile-time-chart",
prNumberList,
travisCompileTimeColumns,
viewPullRequestOnClick(prNumberList),
"time",
- formatSeconds
+ formatSecsAsMins
);
}
diff --git a/website/app_test.js b/website/app_test.js
index 5edecc26e..a4d7eccd0 100644
--- a/website/app_test.js
+++ b/website/app_test.js
@@ -7,8 +7,6 @@ import {
createThreadCountColumns,
createSyscallCountColumns,
createSha1List,
- formatBytes,
- formatSeconds,
getTravisData
} from "./app.js";
@@ -195,20 +193,6 @@ test(function createSha1ListRegularData() {
assertEqual(sha1List, ["abcdef", "012345"]);
});
-test(function formatBytesPatterns() {
- assertEqual(formatBytes(18000), "17.58 KB");
- assertEqual(formatBytes(1800000), "1.72 MB");
- assertEqual(formatBytes(180000000), "171.66 MB");
- assertEqual(formatBytes(18000000000), "16.76 GB");
-});
-
-test(function formatSecondsPatterns() {
- assertEqual(formatSeconds(10), "0 min");
- assertEqual(formatSeconds(100), "2 min");
- assertEqual(formatSeconds(1000), "17 min");
- assertEqual(formatSeconds(10000), "167 min");
-});
-
testPerm({ net: true }, async function getTravisDataSuccess() {
const data = await getTravisData(
"http://localhost:4545/tools/testdata/travis_benchmark.json"