b5a7fbbdfc53912767a954ede90c4ec5e3b22f21
1 const Benchmark
= require('benchmark')
2 const { LIST_FORMATTER
} = require('./benchmark-utils')
4 const suite
= new Benchmark
.Suite()
11 function fibonacciLoop (num
) {
29 function fibonacciRecursion (num
) {
30 if (num
<= 1) return 1
32 return fibonacciRecursion(num
- 1) + fibonacciRecursion(num
- 2)
39 function fibonacciRecursionMemoization (num
, memo
) {
42 if (memo
[num
]) return memo
[num
]
43 if (num
<= 1) return 1
46 fibonacciRecursionMemoization(num
- 1, memo
) +
47 fibonacciRecursionMemoization(num
- 2, memo
))
51 .add('fibonacciLoop', function () {
54 .add('fibonacciRecursion', function () {
55 fibonacciRecursion(number
)
57 .add('fibonacciRecursionMemoization', function () {
58 fibonacciRecursionMemoization(number
)
60 .on('cycle', function (event
) {
61 console
.log(event
.target
.toString())
63 .on('complete', function () {
65 'Fastest is ' + LIST_FORMATTER
.format(this.filter('fastest').map('name'))
67 // eslint-disable-next-line no-process-exit