diff options
Diffstat (limited to 'website')
-rw-r--r-- | website/app.js | 56 | ||||
-rw-r--r-- | website/app_test.js | 16 | ||||
-rw-r--r-- | website/index.html | 3 |
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> |