Skip to content

Instantly share code, notes, and snippets.

@caderek
Last active October 22, 2019 23:49
Show Gist options
  • Save caderek/93394875730cc1b9f6750e527e7b9fcf to your computer and use it in GitHub Desktop.
Save caderek/93394875730cc1b9f6750e527e7b9fcf to your computer and use it in GitHub Desktop.
const fs = require('fs')
const fileA = JSON.parse(fs.readFileSync(process.argv[2]).toString())
const fileB = JSON.parse(fs.readFileSync(process.argv[3]).toString())
const diffs = fileB.results.map((resultB) => {
const oldResult = fileA.results.find(
(resultA) => resultA.name === resultB.name,
)
if (!oldResult) {
return { name: resultB.name, diff: null }
}
const diff = ((resultB.ops - oldResult.ops) / oldResult.ops) * 100
return {
name: resultB.name,
diff,
}
})
console.log(
diffs
.map(
({ name, diff }) =>
`${name}: ${diff.toFixed(2)}% ${
diff > 0 ? 'faster' : diff < 0 ? 'slower' : 'same'
}`,
)
.join('\n'),
)
const changed = diffs.filter((item) => item.diff !== null)
const average = changed.reduce((a, b) => a + b.diff, 0) / changed.length
console.log(
`Average: ${average.toFixed(2)}% ${
average > 0 ? 'faster' : average < 0 ? 'slower' : 'same'
}`,
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment