ramda mapAccum perf Improvement

Benchmark created on


Setup

function current(fn, acc, list) {
  var idx = 0;
  var len = list.length;
  var result = [];
  var tuple = [acc];
  while (idx < len) {
    tuple = fn(tuple[0], list[idx]);
    result[idx] = tuple[1];
    idx += 1;
  }
  return [tuple[0], result];
}

function next(fn, acc, list) {
  var idx = 0;
  var len = list.length;
  var result = Array(len);
  var tuple = [acc];
  while (idx < len) {
    tuple = fn(tuple[0], list[idx]);
    result[idx] = tuple[1];
    idx += 1;
  }
  return [tuple[0], result];
}

const arr = Array(10000).fill(undefined).map((_, i) => i);

Test runner

Ready to run.

Testing in
TestOps/sec
Current
current((v, acc) => v + acc, 0, arr)
ready
Next
next((v, acc) => v + acc, 0, arr)
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.