UNPKG

@lumina-dex/contracts

Version:
50 lines (41 loc) 1.09 kB
import fs from "fs" export { getProfiler } const round = (x: number) => Math.round(x * 100) / 100 function getProfiler(name: string) { let times: Record<string, any> = {} let label: string return { get times() { return times }, start(label_: string) { label = label_ times = { ...times, [label]: { start: performance.now() } } }, stop() { times[label].end = performance.now() return this }, store() { let profilingData = `## Times for ${name}\n\n` profilingData += `| Name | time passed in s |\n|---|---|` let totalTimePassed = 0 Object.keys(times).forEach((k) => { const timePassed = (times[k].end - times[k].start) / 1000 totalTimePassed += timePassed profilingData += `\n|${k}|${round(timePassed)}|` }) profilingData += `\n\nIn total, it took ${ round( totalTimePassed ) } seconds to run the entire benchmark\n\n\n` fs.appendFileSync("profiling.md", profilingData) } } }