forEach vs loop (v123)

Revision 123 of this benchmark created by jonbo on


Setup

var small_arr = new Array(64);
    for (var i = 0; i < 64; i++) small_arr[i] = (i%8) + 1;
    
    var medium_arr = new Array(4096);
    for (var i = 0; i < 4096; i++) medium_arr[i] = (i%8) + 1;
    
    var large_arr = new Array(65536);
    for (var i = 0; i < 65536; i++) large_arr[i] = (i%8) + 1;
    
    var sum = 0;
    function add(val) {
      sum += val;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
small forEach
small_arr.forEach(add);
ready
small loop (inline)
for (var i = 0, l = small_arr.length; i < l; i++) {
  sum += small_arr[i];
}
ready
small loop
for (var i = 0, l = small_arr.length; i < l; i++) {
  add(small_arr[i]);
}
ready
med forEach
medium_arr.forEach(add);
ready
med loop (inline)
for (var i = 0, l = medium_arr.length; i < l; i++) {
  sum += medium_arr[i];
}
ready
med loop
for (var i = 0, l = medium_arr.length; i < l; i++) {
  add(medium_arr[i]);
}
ready
large forEach
large_arr.forEach(add);
ready
large loop (inline)
for (var i = 0, l = large_arr.length; i < l; i++) {
  sum += large_arr[i];
}
ready
large loop
for (var i = 0, l = large_arr.length; i < l; i++) {
  add(large_arr[i]);
}
ready

Revisions

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