Script Preparation code:
AخA
 
var arr = new Array(1000);
Tests:
  • Basic for loop

     
    for (var i=0; i<arr.length; i++) {}
  • For loop but caching the length

     
    for (var i=0, len=arr.length; i<len; i++) {}
  • While loop that imitates a for loop

     
    var i = 0;
    while (i<arr.length) {
        i++;
    }
  • While loop that imitates a for loop caching len

     
    var i=0, len=arr.length;
    while (i<len) {
        i++;
    }
  • While loop in reverse simplifying the test

     
    var i = arr.length; while (i--) {}  
  • While looping by popping values

     
    var x;
    while (x = arr.pop()) {}
  • for ... in loop

     
    for (var i in arr) {}
  • for ... in loop with integer test

     
    var isInt = /(\^[0-9]$)|(\^[1-9][0-9]+$)/;
    for (var i in arr) {
        if(!isInt.test(i)){continue;}
    }
  • For loop testing on existence rather than lengt

     
    for (var i=0; arr[i]; i++) {}   
  • For loop testing on existence plus array lookup

     
    for (var i=0; arr[i]; i++) {
        var x = arr[i];
    }
  • For testing on existence rather than length array

     
    for (var i=0, x; x = arr[i++];) {}  
  • For reference

     
    for (var i=0, len=arr.length; i<len; i++) {
        var x = arr[i];
    }
  • Array.forEach() native implementation.

     
    arr.forEach(function(x){});
  • For reference against forEach()

     
    var f=function(x){};
    for (var i=0, len=arr.length; i<len; i++) {
        f(arr[i]);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Basic for loop
    For loop but caching the length
    While loop that imitates a for loop
    While loop that imitates a for loop caching len
    While loop in reverse simplifying the test
    While looping by popping values
    for ... in loop
    for ... in loop with integer test
    For loop testing on existence rather than lengt
    For loop testing on existence plus array lookup
    For testing on existence rather than length array
    For reference
    Array.forEach() native implementation.
    For reference against forEach()

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 8 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.113 Safari/537.36
Chrome 53 on Windows
View result in a separate tab
Test name Executions per second
Basic for loop 7268.3 Ops/sec
For loop but caching the length 605072.3 Ops/sec
While loop that imitates a for loop 6503.2 Ops/sec
While loop that imitates a for loop caching len 570308.4 Ops/sec
While loop in reverse simplifying the test 647350.1 Ops/sec
While looping by popping values 6684267.0 Ops/sec
for ... in loop 3997473.8 Ops/sec
for ... in loop with integer test 4071390.2 Ops/sec
For loop testing on existence rather than lengt 6892458.0 Ops/sec
For loop testing on existence plus array lookup 7364022.0 Ops/sec
For testing on existence rather than length array 7183270.5 Ops/sec
For reference 8238255.0 Ops/sec
Array.forEach() native implementation. 6457470.0 Ops/sec
For reference against forEach() 7420539.0 Ops/sec