-const Benchmark = require('benchmark')
-const { LIST_FORMATTER } = require('./benchmark-utils')
-
-const suite = new Benchmark.Suite()
+const Benchmark = require('benny')
const number = 30
/**
* @param num
+ * @returns
*/
function fibonacciLoop (num) {
let a = 1
/**
* @param num
+ * @returns
*/
function fibonacciRecursion (num) {
if (num <= 1) return 1
/**
* @param num
* @param memo
+ * @returns
*/
function fibonacciRecursionMemoization (num, memo) {
memo = memo || {}
fibonacciRecursionMemoization(num - 2, memo))
}
-suite
- .add('fibonacciLoop', function () {
+Benchmark.suite(
+ `Fibonacci number ${number}`,
+ Benchmark.add('fibonacciLoop', () => {
fibonacciLoop(number)
- })
- .add('fibonacciRecursion', function () {
+ }),
+ Benchmark.add('fibonacciRecursion', () => {
fibonacciRecursion(number)
- })
- .add('fibonacciRecursionMemoization', function () {
+ }),
+ Benchmark.add('fibonacciRecursionMemoization', () => {
fibonacciRecursionMemoization(number)
- })
- .on('cycle', function (event) {
- console.log(event.target.toString())
- })
- .on('complete', function () {
- console.log(
- 'Fastest is ' + LIST_FORMATTER.format(this.filter('fastest').map('name'))
- )
- // eslint-disable-next-line no-process-exit
- process.exit()
- })
- .run()
+ }),
+ Benchmark.cycle(),
+ Benchmark.complete(),
+ Benchmark.save({ file: 'fibonacci', format: 'json', details: true }),
+ Benchmark.save({ file: 'fibonacci', format: 'chart.html', details: true }),
+ Benchmark.save({ file: 'fibonacci', format: 'table.html', details: true })
+)