benchmark-suite
Version:
A simple suite of benchmarking tests
1 lines • 2.63 kB
Source Map (JSON)
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/benchmark/benchmark-suite/src/OperationsTest.mjs"],"sourcesContent":["import humanize from 'human-format';\nimport Stats from 'stats-accumulator';\n\nexport default class OperationsTest {\n constructor(name, fn) {\n this.name = name;\n this.fn = fn;\n }\n\n async run(options) {\n const time = options.time;\n await this.callibrate(options);\n const startTime = Date.now();\n const stats = { end: { name: this.name, stats: new Stats() } };\n\n do {\n const time = await this.runOnce(options);\n stats.end.stats.update(time);\n } while (Date.now() - startTime <= time);\n\n return stats;\n }\n\n async callibrate(_options) {\n await this.fn(() => {});\n await this.fn(() => {});\n }\n\n async runOnce(_options) {\n const now = Date.now();\n await this.fn(() => {});\n return Date.now() - now;\n }\n\n static metric(stats) {\n return stats.n / stats.mean;\n }\n\n static formatStats(stats) {\n const ops = stats.n / stats.mean;\n const opsStdev = stats.n / Math.sqrt(stats.variance / stats.mean) / 100;\n return `${humanize(ops)} ops/s ±${opsStdev.toFixed(1)}% (${stats.n} runs sampled)`;\n }\n}\n"],"names":["humanize","Stats","OperationsTest","run","options","time","callibrate","startTime","Date","now","stats","end","name","runOnce","update","_options","fn","metric","n","mean","formatStats","ops","opsStdev","Math","sqrt","variance","toFixed","constructor"],"mappings":"AAAA,OAAOA,cAAc,eAAe;AACpC,OAAOC,WAAW,oBAAoB;AAEvB,IAAA,AAAMC,iBAAN,MAAMA;IAMnB,MAAMC,IAAIC,OAAO,EAAE;QACjB,MAAMC,OAAOD,QAAQC,IAAI;QACzB,MAAM,IAAI,CAACC,UAAU,CAACF;QACtB,MAAMG,YAAYC,KAAKC,GAAG;QAC1B,MAAMC,QAAQ;YAAEC,KAAK;gBAAEC,MAAM,IAAI,CAACA,IAAI;gBAAEF,OAAO,IAAIT;YAAQ;QAAE;QAE7D,GAAG;YACD,MAAMI,OAAO,MAAM,IAAI,CAACQ,OAAO,CAACT;YAChCM,MAAMC,GAAG,CAACD,KAAK,CAACI,MAAM,CAACT;QACzB,QAASG,KAAKC,GAAG,KAAKF,aAAaF,KAAM;QAEzC,OAAOK;IACT;IAEA,MAAMJ,WAAWS,QAAQ,EAAE;QACzB,MAAM,IAAI,CAACC,EAAE,CAAC,KAAO;QACrB,MAAM,IAAI,CAACA,EAAE,CAAC,KAAO;IACvB;IAEA,MAAMH,QAAQE,QAAQ,EAAE;QACtB,MAAMN,MAAMD,KAAKC,GAAG;QACpB,MAAM,IAAI,CAACO,EAAE,CAAC,KAAO;QACrB,OAAOR,KAAKC,GAAG,KAAKA;IACtB;IAEA,OAAOQ,OAAOP,KAAK,EAAE;QACnB,OAAOA,MAAMQ,CAAC,GAAGR,MAAMS,IAAI;IAC7B;IAEA,OAAOC,YAAYV,KAAK,EAAE;QACxB,MAAMW,MAAMX,MAAMQ,CAAC,GAAGR,MAAMS,IAAI;QAChC,MAAMG,WAAWZ,MAAMQ,CAAC,GAAGK,KAAKC,IAAI,CAACd,MAAMe,QAAQ,GAAGf,MAAMS,IAAI,IAAI;QACpE,OAAO,GAAGnB,SAASqB,KAAK,QAAQ,EAAEC,SAASI,OAAO,CAAC,GAAG,GAAG,EAAEhB,MAAMQ,CAAC,CAAC,cAAc,CAAC;IACpF;IAtCAS,YAAYf,IAAI,EAAEI,EAAE,CAAE;QACpB,IAAI,CAACJ,IAAI,GAAGA;QACZ,IAAI,CAACI,EAAE,GAAGA;IACZ;AAoCF;AAxCA,SAAqBd,4BAwCpB"}