Script Preparation code:
x
 
  var arr = [];
  for (var i = 0; i < 1000; i++) {
    arr[i] = i;
  }
  function someFn(ix) {
    return ix * 5 + 1 / 3 * 8;
  }
Tests:
  • For loop, basic

     
    for (var i = 0; i < arr.length; i++) {
      someFn(arr[i]);
    }
  • While loop, basic

     
    var i = 0;
    while (i < arr.length) {
      someFn(arr[i]);
      i++;
    }
  • For loop, cached (inside for statement)

     
    for (var i = 0, len = arr.length; i < len; i++) {
      someFn(arr[i]);
    }
  • For loop, cached (outside for statement)

     
    var len = arr.length;
    for (var i = 0; i < len; i++) {
      someFn(arr[i]);
    }
  • For loop, i-- (caching inside for loop)

     
    for (var i = arr.length; i > 0; i--) {
      someFn(arr[i]);
    }
  • For loop, i-- (caching outside for loop)

     
    var i = arr.length;
    for (; i--;) {
      someFn(arr[i]);
    }
  • While loop, cached

     
    var len = arr.length;
    var i = 0;
    while(i < len){
      someFn(arr[i]);
      i++;
    }
  • While loop, i--

     
    var i = arr.length;
    while(i--){
      someFn(arr[i]);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    For loop, basic
    While loop, basic
    For loop, cached (inside for statement)
    For loop, cached (outside for statement)
    For loop, i-- (caching inside for loop)
    For loop, i-- (caching outside for loop)
    While loop, cached
    While loop, i--

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 years ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Chrome 76 on Windows
View result in a separate tab
Test name Executions per second
For loop, basic 3264.0 Ops/sec
While loop, basic 3147.3 Ops/sec
For loop, cached (inside for statement) 5092.2 Ops/sec
For loop, cached (outside for statement) 5373.7 Ops/sec
For loop, i-- (caching inside for loop) 5192.6 Ops/sec
For loop, i-- (caching outside for loop) 5287.7 Ops/sec
While loop, cached 5155.0 Ops/sec
While loop, i-- 5408.2 Ops/sec