function reportBenchmarks() {
    var output = '\n\nBenchmark Report ::\n';
    output += _.reduce(this.benchmarks, function(memo, result) {

      // Convert to ms-
      var ms = (result.duration / 1000.0);

      // round to 0 decimal places
      function _roundDecimalTo(num, numPlaces) {
        return +(Math.round(num + ('e+' + numPlaces)) + ('e-' + numPlaces));
      }
      ms = _roundDecimalTo(ms, 2);


      var expected = result.expected || 1000;

      // threshold: the "failure" threshold
      var threshold = result.expected;

      var color =
        (ms < 1 * expected / 10) ? 'green' :
        (ms < 3 * expected / 10) ? 'green' :
        (ms < 6 * expected / 10) ? 'cyan' :
        (ms < threshold) ? 'yellow' :
        'red';

      ms += 'ms';
      ms = ms[color];

      // Whether to show expected ms
      var showExpected = true; // ms >= threshold;

      return memo + '\n ' +
        chalk.grey((result.benchmark + '') + ' :: ') + ms +

        // Expected ms provided, and the test took quite a while
        chalk.grey(result.expected && showExpected ? '\n   (expected ' + expected + 'ms' +
          (result.comment ? ' --' + result.comment : '') +
          ')' :

          // Comment provided - but no expected ms
          (result.comment ? '\n   (' + result.comment + ')\n' : '')
        );
    }, '');

    // Log output (optional)
    if (SHOW_VERBOSE_BENCHMARK_REPORT) {
      console.log(output);
    }
  }
Use in mocha's `after`

@this {Array} benchmarks