HTML Preparation code:
AخA
 
1
<script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
Script Preparation code:
x
 
var makeArr = (randomCeil) => (len) =>
    Array.from({
        length: len
    }, (v, i) => Math.floor(Math.random() * randomCeil));
var arrOfMillion = makeArr(100)(1e6);
var tripleIt = (num) => num * 3;
var isEven = (num) => num % 2 === 0;
Tests:
  • forEach

     
    const result = [];
    arrOfMillion.forEach((item) => {
      const tripleItem = tripleIt(item);
      if (isEven(tripleItem)) {
        result.push(tripleItem);
      }
    });
  • mapFilter

     
    const result = arrOfMillion.map(tripleIt).filter(isEven);
  • transduce

     
    const transducer = R.compose(R.filter(isEven), R.map(tripleIt));
    const reducer = (acc, val) => (acc.push(val), acc); // same as (acc, val) => { acc.push(val); return acc }
    const result = R.transduce(transducer, reducer, [], arrOfMillion);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    forEach
    mapFilter
    transduce

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.115 Safari/537.36
Chrome 102 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
forEach 4.5 Ops/sec
mapFilter 18.9 Ops/sec
transduce 35.7 Ops/sec