show total execution time in stacked charts
This commit is contained in:
parent
39c83787be
commit
57d6da26de
@ -49,7 +49,8 @@ class WasmVsJsChart extends React.Component {
|
|||||||
}
|
}
|
||||||
convertDataToHz(data) {
|
convertDataToHz(data) {
|
||||||
let datasets = data.datasets
|
let datasets = data.datasets
|
||||||
for (let dataset of datasets.filter(d => d.label !== 'numberOfNodes')) {
|
console.log(datasets)
|
||||||
|
for (let dataset of datasets.filter(d => d.id !== 'numberOfNodes')) {
|
||||||
dataset.data = dataset.data.map(mean => 1000 / mean)
|
dataset.data = dataset.data.map(mean => 1000 / mean)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -100,8 +101,8 @@ class WasmVsJsChart extends React.Component {
|
|||||||
/**
|
/**
|
||||||
* Returns the dataset specified by label
|
* Returns the dataset specified by label
|
||||||
*/
|
*/
|
||||||
function getDataset(data, label) {
|
function getDataset(data, id) {
|
||||||
return data.datasets.filter(d => d.label === label)[0]
|
return data.datasets.filter(d => d.id === id)[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -116,20 +117,41 @@ function calculateTimeDelta(whole, arr1, arr2) {
|
|||||||
return whole.map((val, i) => val - (safeGet(arr1, i) + safeGet(arr2, i)))
|
return whole.map((val, i) => val - (safeGet(arr1, i) + safeGet(arr2, i)))
|
||||||
}
|
}
|
||||||
|
|
||||||
function modifyDataArrays(data, exec, pre, after) {
|
function modifyDataArrays(data, exec, pre, after, newDatasetLabel) {
|
||||||
if (getDataset(data, exec)) {
|
if (getDataset(data, exec)) {
|
||||||
getDataset(data, exec).data = calculateTimeDelta(
|
data.datasets.splice(1, 0, {
|
||||||
getDataset(data, exec).data,
|
id: 'execution',
|
||||||
getDataset(data, pre).data,
|
backgroundColor: 'red',
|
||||||
getDataset(data, after).data
|
borderColor: 'red',
|
||||||
)
|
label: newDatasetLabel,
|
||||||
|
data: calculateTimeDelta(
|
||||||
|
getDataset(data, exec).data,
|
||||||
|
getDataset(data, pre).data,
|
||||||
|
getDataset(data, after).data
|
||||||
|
),
|
||||||
|
stack: 'a'
|
||||||
|
})
|
||||||
|
for (let dataset of data.datasets) {
|
||||||
|
if (dataset.id === exec) {
|
||||||
|
dataset.label = 'Total execution time'
|
||||||
|
dataset.stack = 'b'
|
||||||
|
dataset.backgroundColor = '#ff7a6b'
|
||||||
|
dataset.borderColor = '#ff7a6b'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WasmStackChart extends React.Component {
|
class WasmStackChart extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
const data = this.props.data
|
const data = this.props.data
|
||||||
modifyDataArrays(data, 'simplifyWASM', 'storeCoords', 'loadResult')
|
modifyDataArrays(
|
||||||
|
data,
|
||||||
|
'simplifyWASM',
|
||||||
|
'storeCoords',
|
||||||
|
'loadResult',
|
||||||
|
'Simplification'
|
||||||
|
)
|
||||||
const options = genOptions('Simplify.wasm runtime insights', true)
|
const options = genOptions('Simplify.wasm runtime insights', true)
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@ -157,7 +179,8 @@ class JsStackChart extends React.Component {
|
|||||||
data,
|
data,
|
||||||
'origSimplifyWithTransformCase',
|
'origSimplifyWithTransformCase',
|
||||||
'transformToObjectFormCase',
|
'transformToObjectFormCase',
|
||||||
'transformToArrayFormCase'
|
'transformToArrayFormCase',
|
||||||
|
'Simplification'
|
||||||
)
|
)
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
@ -1,33 +1,46 @@
|
|||||||
import ChartJS from 'chart.js'
|
function genDataset(id, label, color, yAxisID = 'performance', type) {
|
||||||
|
|
||||||
function genDataset(label, color, yAxisID = 'performance', type) {
|
|
||||||
return {
|
return {
|
||||||
|
id,
|
||||||
type,
|
type,
|
||||||
label,
|
label,
|
||||||
yAxisID,
|
yAxisID,
|
||||||
fill: false,
|
fill: false,
|
||||||
backgroundColor: color,
|
backgroundColor: color,
|
||||||
borderColor: color,
|
borderColor: color,
|
||||||
data: []
|
data: [],
|
||||||
|
stack: 'a'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const datasetTemplates = {
|
export const datasetTemplates = {
|
||||||
numberOfNodes: genDataset('# of positions', 'grey', 'nodes', 'line'),
|
numberOfNodes: genDataset(
|
||||||
simplifyWASM: genDataset('Simplify.wasm', 'red'),
|
'numberOfNodes',
|
||||||
simplifyJS: genDataset('Simplify.js', 'blue'),
|
'# of positions',
|
||||||
simplifyJSAlt: genDataset('Simplify.js Alternative', 'green'),
|
'grey',
|
||||||
storeCoords: genDataset('Store coordinates', 'blue'),
|
'nodes',
|
||||||
loadResult: genDataset('Load result', 'green'),
|
'line'
|
||||||
|
),
|
||||||
|
simplifyWASM: genDataset('simplifyWASM', 'Simplify.wasm', 'red'),
|
||||||
|
simplifyJS: genDataset('simplifyJS', 'Simplify.js', 'blue'),
|
||||||
|
simplifyJSAlt: genDataset(
|
||||||
|
'simplifyJSAlt',
|
||||||
|
'Simplify.js Alternative',
|
||||||
|
'green'
|
||||||
|
),
|
||||||
|
storeCoords: genDataset('storeCoords', 'Store coordinates', 'blue'),
|
||||||
|
loadResult: genDataset('loadResult', 'Load result', 'green'),
|
||||||
origSimplifyWithTransformCase: genDataset(
|
origSimplifyWithTransformCase: genDataset(
|
||||||
|
'origSimplifyWithTransformCase',
|
||||||
'Simplify.js with data transformation',
|
'Simplify.js with data transformation',
|
||||||
'red'
|
'red'
|
||||||
),
|
),
|
||||||
transformToArrayFormCase: genDataset(
|
transformToArrayFormCase: genDataset(
|
||||||
|
'transformToArrayFormCase',
|
||||||
'Transform result to array format',
|
'Transform result to array format',
|
||||||
'green'
|
'green'
|
||||||
),
|
),
|
||||||
transformToObjectFormCase: genDataset(
|
transformToObjectFormCase: genDataset(
|
||||||
|
'transformToObjectFormCase',
|
||||||
'Transform coordinates to object format',
|
'Transform coordinates to object format',
|
||||||
'blue'
|
'blue'
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user