Path: blob/master/node_modules/@protobufjs/float/bench/suite.js
1129 views
"use strict";1module.exports = newSuite;23var benchmark = require("benchmark"),4chalk = require("chalk");56var padSize = 27;78function newSuite(name) {9var benches = [];10return new benchmark.Suite(name)11.on("add", function(event) {12benches.push(event.target);13})14.on("start", function() {15process.stdout.write("benchmarking " + name + " performance ...\n\n");16})17.on("cycle", function(event) {18process.stdout.write(String(event.target) + "\n");19})20.on("complete", function() {21if (benches.length > 1) {22var fastest = this.filter("fastest"), // eslint-disable-line no-invalid-this23fastestHz = getHz(fastest[0]);24process.stdout.write("\n" + chalk.white(pad(fastest[0].name, padSize)) + " was " + chalk.green("fastest") + "\n");25benches.forEach(function(bench) {26if (fastest.indexOf(bench) === 0)27return;28var hz = hz = getHz(bench);29var percent = (1 - hz / fastestHz) * 100;30process.stdout.write(chalk.white(pad(bench.name, padSize)) + " was " + chalk.red(percent.toFixed(1) + "% slower") + "\n");31});32}33process.stdout.write("\n");34});35}3637function getHz(bench) {38return 1 / (bench.stats.mean + bench.stats.moe);39}4041function pad(str, len, l) {42while (str.length < len)43str = l ? str + " " : " " + str;44return str;45}464748