summaryrefslogtreecommitdiff
path: root/website
diff options
context:
space:
mode:
Diffstat (limited to 'website')
-rw-r--r--website/app.js56
-rw-r--r--website/app_test.js16
-rw-r--r--website/index.html3
3 files changed, 68 insertions, 7 deletions
diff --git a/website/app.js b/website/app.js
index 403aa343a..7346defb4 100644
--- a/website/app.js
+++ b/website/app.js
@@ -16,18 +16,41 @@ export function getTravisData() {
.then(data => data.builds.reverse());
}
-export function createExecTimeColumns(data) {
- const benchmarkNames = Object.keys(data[data.length - 1].benchmark);
- return benchmarkNames.map(name => [
- name,
+function getBenchmarkVarieties(data, benchmarkName) {
+ // Look at last sha hash.
+ const last = data[data.length - 1];
+ return Object.keys(last[benchmarkName]);
+}
+
+export function createColumns(data, benchmarkName) {
+ const varieties = getBenchmarkVarieties(data, benchmarkName);
+ return varieties.map(variety => [
+ variety,
...data.map(d => {
- const benchmark = d.benchmark[name];
- const meanValue = benchmark ? benchmark.mean : 0;
- return meanValue || null;
+ if (d[benchmarkName] != null) {
+ if (d[benchmarkName][variety] != null) {
+ const v = d[benchmarkName][variety];
+ if (benchmarkName == "benchmark") {
+ const meanValue = v ? v.mean : 0;
+ return meanValue || null;
+ } else {
+ return v;
+ }
+ }
+ }
+ return null;
})
]);
}
+export function createExecTimeColumns(data) {
+ return createColumns(data, "benchmark");
+}
+
+export function createThroughputColumns(data) {
+ return createColumns(data, "throughput");
+}
+
export function createBinarySizeColumns(data) {
const propName = "binary_size";
const binarySizeNames = Object.keys(data[data.length - 1][propName]);
@@ -108,6 +131,7 @@ export async function main() {
const travisData = (await getTravisData()).filter(d => d.duration > 0);
const execTimeColumns = createExecTimeColumns(data);
+ const throughputColumns = createThroughputColumns(data);
const binarySizeColumns = createBinarySizeColumns(data);
const threadCountColumns = createThreadCountColumns(data);
const syscallCountColumns = createSyscallCountColumns(data);
@@ -147,6 +171,24 @@ export async function main() {
});
c3.generate({
+ bindto: "#throughput-chart",
+ data: {
+ columns: throughputColumns,
+ onclick: viewCommitOnClick(sha1List)
+ },
+ axis: {
+ x: {
+ type: "category",
+ show: false,
+ categories: sha1ShortList
+ },
+ y: {
+ label: "seconds"
+ }
+ }
+ });
+
+ c3.generate({
bindto: "#binary-size-chart",
data: {
columns: binarySizeColumns,
diff --git a/website/app_test.js b/website/app_test.js
index 029f659f3..42891bf6b 100644
--- a/website/app_test.js
+++ b/website/app_test.js
@@ -22,6 +22,12 @@ const regularData = [
"main.js.map": 80000000,
"snapshot_deno.bin": 70000000
},
+ throughput: {
+ "100M_tcp": 3.6,
+ "100M_cat": 3.0,
+ "10M_tcp": 1.6,
+ "10M_cat": 1.0
+ },
benchmark: {
hello: {
mean: 0.05
@@ -54,6 +60,12 @@ const regularData = [
"main.js.map": 80000001,
"snapshot_deno.bin": 70000001
},
+ throughput: {
+ "100M_tcp": 3.6,
+ "100M_cat": 3.0,
+ "10M_tcp": 1.6,
+ "10M_cat": 1.0
+ },
benchmark: {
hello: {
mean: 0.055
@@ -84,6 +96,7 @@ const irregularData = [
created_at: "2018-01-01T01:00:00Z",
sha1: "123",
benchmark: {},
+ throughput: {},
binary_size: {},
thread_count: {},
syscall_count: {}
@@ -97,6 +110,9 @@ const irregularData = [
cold_hello: {},
cold_relative_import: {}
},
+ throughput: {
+ "100M_tcp": 3.0
+ },
binary_size: {
deno: 1
},
diff --git a/website/index.html b/website/index.html
index 84291e5d8..03bb268bf 100644
--- a/website/index.html
+++ b/website/index.html
@@ -26,6 +26,9 @@
A cold startup is when deno must compile from scratch.
<div id="exec-time-chart"></div>
+ <h2>Throughput</h2>
+ <div id="throughput-chart"></div>
+
<h2>Executable size</h2>
deno ships only a single binary. We track its size here.
<div id="binary-size-chart"></div>