benchmark-suite
Version:
A simple suite of benchmarking tests
1 lines • 2.91 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":["OperationsTest","name","fn","run","options","time","startTime","stats","callibrate","Date","now","end","Stats","runOnce","update","_options","metric","n","mean","formatStats","ops","opsStdev","Math","sqrt","variance","humanize","toFixed"],"mappings":";;;;;;;eAGqBA;;;kEAHA;uEACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,IAAA,AAAMA,+BAAN;;aAAMA,eACPC,IAAI,EAAEC,EAAE;gCADDF;QAEjB,IAAI,CAACC,IAAI,GAAGA;QACZ,IAAI,CAACC,EAAE,GAAGA;;iBAHOF;IAMnB,OAAMG,GAYL,GAZD,SAAMA,IAAIC,OAAO;;eAAjB,oBAAA;gBACQC,MAEAC,WACAC,OAGEF;;;;wBANFA,OAAOD,QAAQC,IAAI;wBACzB;;4BAAM,MAAKG,UAAU,CAACJ;;;wBAAtB;wBACME,YAAYG,KAAKC,GAAG;wBACpBH,QAAQ;4BAAEI,KAAK;gCAAEV,MAAM,MAAKA,IAAI;gCAAEM,OAAO,IAAIK,yBAAK;4BAAG;wBAAE;;;wBAG9C;;4BAAM,MAAKC,OAAO,CAACT;;;wBAA1BC,QAAO;wBACbE,MAAMI,GAAG,CAACJ,KAAK,CAACO,MAAM,CAACT;;;4BAChBI,KAAKC,GAAG,KAAKJ,aAAaD,MAA1BI;;;;;;wBAET;;4BAAOF;;;;QACT;;IAEA,OAAMC,UAGL,GAHD,SAAMA,WAAWO,QAAQ;;eAAzB,oBAAA;;;;wBACE;;4BAAM,MAAKb,EAAE,CAAC,YAAO;;;wBAArB;wBACA;;4BAAM,MAAKA,EAAE,CAAC,YAAO;;;wBAArB;;;;;;QACF;;IAEA,OAAMW,OAIL,GAJD,SAAMA,QAAQE,QAAQ;;eAAtB,oBAAA;gBACQL;;;;wBAAAA,MAAMD,KAAKC,GAAG;wBACpB;;4BAAM,MAAKR,EAAE,CAAC,YAAO;;;wBAArB;wBACA;;4BAAOO,KAAKC,GAAG,KAAKA;;;;QACtB;;IA7BmBV,eA+BZgB,MAEN,GAFD,SAAOA,OAAOT,KAAK;QACjB,OAAOA,MAAMU,CAAC,GAAGV,MAAMW,IAAI;IAC7B;IAjCmBlB,eAmCZmB,WAIN,GAJD,SAAOA,YAAYZ,KAAK;QACtB,IAAMa,MAAMb,MAAMU,CAAC,GAAGV,MAAMW,IAAI;QAChC,IAAMG,WAAWd,MAAMU,CAAC,GAAGK,KAAKC,IAAI,CAAChB,MAAMiB,QAAQ,GAAGjB,MAAMW,IAAI,IAAI;QACpE,OAAO,AAAC,GAA0BG,OAAxBI,IAAAA,oBAAQ,EAACL,MAAK,eAAmCb,OAAzBc,SAASK,OAAO,CAAC,IAAG,OAAa,OAARnB,MAAMU,CAAC,EAAC;IACrE;WAvCmBjB"}