1 const Benchmark
= require('benchmark')
2 const { LIST_FORMATTER
} = require('./benchmark-utils')
4 const suite
= new Benchmark
.Suite()
12 function fibonacciLoop (num
) {
31 function fibonacciRecursion (num
) {
32 if (num
<= 1) return 1
34 return fibonacciRecursion(num
- 1) + fibonacciRecursion(num
- 2)
42 function fibonacciRecursionMemoization (num
, memo
) {
45 if (memo
[num
]) return memo
[num
]
46 if (num
<= 1) return 1
49 fibonacciRecursionMemoization(num
- 1, memo
) +
50 fibonacciRecursionMemoization(num
- 2, memo
))
54 .add('fibonacciLoop', () => {
57 .add('fibonacciRecursion', () => {
58 fibonacciRecursion(number
)
60 .add('fibonacciRecursionMemoization', () => {
61 fibonacciRecursionMemoization(number
)
63 .on('cycle', event
=> {
64 console
.log(event
.target
.toString())
66 .on('complete', function () {
68 'Fastest is ' + LIST_FORMATTER
.format(this.filter('fastest').map('name'))
70 // eslint-disable-next-line n/no-process-exit