UNPKG

enumset32-benchmarks

Version:

Benchmarks for enumset32 vs other set implementations

60 lines (59 loc) 2.62 kB
/*! * Copyright (c) 2019 Justin Johansson */ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import * as fs from 'fs'; import * as path from 'path'; import { BenchResult, SVGBarChart } from './couchmark'; import * as tags from './tags'; function main() { return __awaiter(this, void 0, void 0, function* () { let suites = tags.getSuites(); console.log(`Starting enumset32-benchmarks (${suites.length} suites)\n`); for (let i = 0; i < suites.length; ++i) { let suite = suites[i]; let suiteComplete = new Promise((resolve) => { let benchRslts = []; suite .on('start', function () { console.log(`Running ${this.name} suite (${i + 1} of ${suites.length})\n`); }) .on('cycle', function (ev) { let bm = ev.target; let stats = bm.stats; let summary = String(ev.target); console.log(summary); let benchResult = new BenchResult(bm.name, stats.sample.length, bm.hz, stats.mean, stats.moe, stats.rme, summary); benchRslts.push(benchResult); stats.sample.length = 0; }) .on('complete', function () { suites[i] = undefined; resolve({ suiteName: suite.name, benchResults: benchRslts }); }); suite.run({ async: true }); }); let { suiteName, benchResults } = yield suiteComplete; try { let docdir = 'doc'; if (fs.existsSync(docdir)) { let svgResult = new SVGBarChart(benchResults).result; fs.writeFileSync(path.join(docdir, `${suiteName}.svg`), svgResult); } } catch (e) { console.error(e.message); process.exitCode = 1; } console.log(); } }); } main();