Move retrace runtime scale to the left
Change-Id: I7c9f4bca0f04d74be27ab34c14c201aa3da3ff1f
diff --git a/tools/perf/d8.html b/tools/perf/d8.html
index 810f645..bd9c867 100644
--- a/tools/perf/d8.html
+++ b/tools/perf/d8.html
@@ -30,6 +30,18 @@
import scales from "./scales.js";
import state from "./state.js";
+ const commits = await state.importCommits("./d8_benchmark_data.json");
+ state.initializeBenchmarks();
+ state.initializeLegends({
+ 'Dex size': { default: true },
+ 'Nondeterminism': { default: true },
+ 'Runtime': { default: true },
+ 'Runtime variance': { default: false }
+ });
+ state.initializeZoom();
+ dom.initializeBenchmarkSelectors();
+ dom.initializeChartNavigation();
+
// Chart data provider.
function getData(filteredCommits) {
const labels = filteredCommits.map((c, i) => c.index);
@@ -239,17 +251,6 @@
scales: scales.get()
};
- const commits = await state.importCommits("./d8_benchmark_data.json");
- state.initializeBenchmarks();
- state.initializeLegends({
- 'Dex size': { default: true },
- 'Nondeterminism': { default: true },
- 'Runtime': { default: true },
- 'Runtime variance': { default: false }
- });
- state.initializeZoom();
- dom.initializeBenchmarkSelectors();
- dom.initializeChartNavigation();
chart.setDataProvider(getData);
chart.initializeChart(options);
</script>
diff --git a/tools/perf/r8.html b/tools/perf/r8.html
index 857e607..a7da848 100644
--- a/tools/perf/r8.html
+++ b/tools/perf/r8.html
@@ -30,6 +30,21 @@
import scales from "./scales.js";
import state from "./state.js";
+ const commits = await state.importCommits("./r8_benchmark_data.json");
+ state.initializeBenchmarks();
+ state.initializeLegends({
+ 'Dex size': { default: true },
+ 'Instruction size': { default: true },
+ 'Composable size': { default: true },
+ 'Oat size': { default: true },
+ 'Nondeterminism': { default: true },
+ 'Runtime': { default: true },
+ 'Runtime variance': { default: false }
+ });
+ state.initializeZoom();
+ dom.initializeBenchmarkSelectors();
+ dom.initializeChartNavigation();
+
// Chart data provider.
function getData(filteredCommits) {
const labels = filteredCommits.map((c, i) => c.index);
@@ -314,20 +329,6 @@
scales: scales.get()
};
- const commits = await state.importCommits("./r8_benchmark_data.json");
- state.initializeBenchmarks();
- state.initializeLegends({
- 'Dex size': { default: true },
- 'Instruction size': { default: true },
- 'Composable size': { default: true },
- 'Oat size': { default: true },
- 'Nondeterminism': { default: true },
- 'Runtime': { default: true },
- 'Runtime variance': { default: false }
- });
- state.initializeZoom();
- dom.initializeBenchmarkSelectors();
- dom.initializeChartNavigation();
chart.setDataProvider(getData);
chart.initializeChart(options);
</script>
diff --git a/tools/perf/retrace.html b/tools/perf/retrace.html
index 00d5f48..98a6661 100644
--- a/tools/perf/retrace.html
+++ b/tools/perf/retrace.html
@@ -30,6 +30,16 @@
import scales from "./scales.js";
import state from "./state.js";
+ const commits = await state.importCommits("./retrace_benchmark_data.json");
+ state.initializeBenchmarks();
+ state.initializeLegends({
+ 'Runtime': { default: true },
+ 'Runtime variance': { default: true }
+ });
+ state.initializeZoom();
+ dom.initializeBenchmarkSelectors();
+ dom.initializeChartNavigation();
+
// Chart data provider.
function getData(filteredCommits) {
const labels = filteredCommits.map((c, i) => c.index);
@@ -186,15 +196,6 @@
scales: scales.get()
};
- const commits = await state.importCommits("./retrace_benchmark_data.json");
- state.initializeBenchmarks();
- state.initializeLegends({
- 'Runtime': { default: true },
- 'Runtime variance': { default: true }
- });
- state.initializeZoom();
- dom.initializeBenchmarkSelectors();
- dom.initializeChartNavigation();
chart.setDataProvider(getData);
chart.initializeChart(options);
</script>
diff --git a/tools/perf/scales.js b/tools/perf/scales.js
index 7678fa3..8378e2f 100644
--- a/tools/perf/scales.js
+++ b/tools/perf/scales.js
@@ -4,46 +4,66 @@
import state from "./state.js";
function get() {
- return {
- x: {},
- y: {
+ const scales = {};
+ scales.x = {};
+ if (state.hasLegend('Dex size')) {
+ scales.y = {
position: 'left',
title: {
display: true,
text: 'Dex size (bytes)'
}
- },
- y_runtime: {
- position: 'right',
- title: {
- display: true,
- text: 'Runtime (seconds)'
- }
- },
- y_ins_code_size: {
+ };
+ } else {
+ console.assert(!state.hasLegend('Instruction size'));
+ console.assert(!state.hasLegend('Composable size'));
+ console.assert(!state.hasLegend('Oat size'));
+ }
+ console.assert(state.hasLegend('Runtime'));
+ console.assert(state.hasLegend('Runtime variance'));
+ scales.y_runtime = {
+ position: state.hasLegend('Dex size') ? 'right' : 'left',
+ title: {
+ display: true,
+ text: 'Runtime (seconds)'
+ }
+ };
+ if (state.hasLegend('Instruction size') || state.hasLegend('Composable size')) {
+ scales.y_ins_code_size = {
position: 'left',
title: {
display: true,
text: 'Instruction size (bytes)'
}
- },
- y_oat_code_size: {
+ };
+ }
+ if (state.hasLegend('Oat size')) {
+ scales.y_oat_code_size = {
position: 'left',
title: {
display: true,
text: 'Oat size (bytes)'
}
- }
- };;
+ };
+ }
+ return scales;
}
function update(scales) {
- scales.y.display = state.isLegendSelected('Dex size');
- scales.y_ins_code_size.display =
- state.isLegendSelected('Instruction size') || state.isLegendSelected('Composable size');
- scales.y_oat_code_size.display = state.isLegendSelected('Oat size');
- scales.y_runtime.display =
- state.isLegendSelected('Runtime') || state.isLegendSelected('Runtime variance');
+ if (scales.y) {
+ scales.y.display = state.isLegendSelected('Dex size');
+ }
+ if (scales.y_ins_code_size) {
+ scales.y_ins_code_size.display =
+ state.isLegendSelected('Instruction size') || state.isLegendSelected('Composable size');
+ }
+ if (scales.y_oat_code_size) {
+ scales.y_oat_code_size.display = state.isLegendSelected('Oat size');
+ }
+ if (scales.y_runtime) {
+ scales.y_runtime.display =
+ state.isLegendSelected('Runtime') || state.isLegendSelected('Runtime variance');
+ }
}
export default {
diff --git a/tools/perf/state.js b/tools/perf/state.js
index cbf6bfb..4d0128f 100644
--- a/tools/perf/state.js
+++ b/tools/perf/state.js
@@ -27,6 +27,10 @@
});
}
+function hasLegend(legend) {
+ return legends.has(legend);
+}
+
function importCommits(url) {
return import(url, { with: { type: "json" }})
.then(module => {
@@ -107,6 +111,7 @@
selectedLegends: selectedLegends,
forEachBenchmark: forEachBenchmark,
forEachSelectedBenchmark: forEachSelectedBenchmark,
+ hasLegend: hasLegend,
initializeBenchmarks: initializeBenchmarks,
initializeLegends: initializeLegends,
initializeZoom: initializeZoom,