29 lines
788 B
JavaScript
29 lines
788 B
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
const { promisify } = require('util')
|
|
|
|
const chunk = require('lodash.chunk')
|
|
|
|
const readFile = promisify(fs.readFile)
|
|
|
|
const extractTimestamp = line => Number(line.match(/\d+$/)[0])
|
|
|
|
const avg = list => list.reduce((value, item) => value += item, 0) / list.length
|
|
|
|
async function main () {
|
|
const lines = (await readFile(path.resolve(__dirname, '../benchmark.log'))).toString().split('\n')
|
|
|
|
lines.pop()
|
|
|
|
const times = chunk(lines, 2).map(([start, end]) => {
|
|
return extractTimestamp(end) - extractTimestamp(start)
|
|
});
|
|
|
|
console.log(`samples:\t${times.length}`);
|
|
console.log(`avg:\t\t${avg(times)}\tms`);
|
|
console.log(`best:\t\t${Math.min(...times)}\tms`);
|
|
console.log(`worst:\t\t${Math.max(...times)}\tms`);
|
|
}
|
|
|
|
main()
|