for(;;;) vs forEach vs $.each (v16)

Revision 16 of this benchmark created by Arthur Corenzan on


Preparation HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">
</script>

Setup

var i, cachedFunc = function(i) {
        i / 2;
        };
    
    window.arr = [];
    
    for (i = 0; i < 10000; i += 1) {
      arr.push(i);
    }

Test runner

Ready to run.

Testing in
TestOps/sec
for(;;;)
var ii = 0,
    len = arr.length;

for (ii = 0; ii < len; ii += 1) {
  ii / 2;
}
ready
native forEach
arr.forEach(function(i) {
  i / 2;
});
ready
$.each
$.each(arr, function(i) {
  i / 2;
});
ready
native forEach (cached func)
arr.forEach(cachedFunc);
ready
$.each (cached func)
$.each(arr, cachedFunc);
ready
for(;;;) (self func)
var ii = 0,
    len = arr.length;

for (ii = 0; ii < len; ii += 1) {
  (function(i) {
    i / 2;
  }(ii));
}
ready
reverse for(;;;)
var ii, len = arr.length;

for (ii = len - 1; ii >= 0; ii--) {
  ii / 2;
}
ready
reverse for (;;;) - combined truthy test and decrement
for (var ii = arr.length - 1; ii--;) {
  ii / 2;
}
ready
for in
var i;
for (i in arr) {
  i / 2;
}
ready
while regressive
var i = arr.length;
while (i--) {
  i / 2;
}
ready

Revisions

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