Files
discordeno/bench/tranformOutput.ts
Skillz4Killz 3bbb03b8e3 cleanup cleanup cleanup on isle dd (#2792)
* cleanup cleanup cleanup on isle dd

* fix: rest manager import in test
2023-02-25 20:11:15 -06:00

41 lines
1.3 KiB
TypeScript

// Just a constant sysbench sorce to compare against
const baselineSysbenchScore = 2000
let sysbenchScore = 2000
try {
const { stdout } = await Deno.spawn('sysbench', { args: ['cpu', 'run'] })
const textout = new TextDecoder().decode(stdout)
sysbenchScore = parseFloat(textout.match(/\s+events per second:\s+(.+)/)![1])
} catch {
//
}
const output = await Deno.readTextFile('output.txt')
const lines = output.split(/\r?\n/g)
const ret = []
const unitMultiplier = {
s: 1000 * 1000 * 1000 * (sysbenchScore / baselineSysbenchScore),
ms: 1000 * 1000 * (sysbenchScore / baselineSysbenchScore),
µs: 1000 * (sysbenchScore / baselineSysbenchScore),
ns: 1 * (sysbenchScore / baselineSysbenchScore),
ps: 0.1 * (sysbenchScore / baselineSysbenchScore),
}
for (const line of lines) {
const m = line.match(/^(.+)\s+([0-9.]+) (.s)\/iter\s+\((.+) (.s) … (.+) (.s)\)(.+)$/)
if (m === null) continue
ret.push({
name: m[1].trim(),
value: Math.round(parseFloat(m[2]) * unitMultiplier[m[3] as keyof typeof unitMultiplier]),
range: `${Math.round(parseFloat(m[4]) * unitMultiplier[m[5] as keyof typeof unitMultiplier] * 100) / 100}${
Math.round(parseFloat(m[6]) * unitMultiplier[m[7] as keyof typeof unitMultiplier] * 100) / 100
}`,
unit: 'ns/iter',
})
}
await Deno.writeTextFile('output.txt', JSON.stringify(ret, undefined, 2))