Loop speed (v2)

Revision 2 of this benchmark created by Daniel Ferenc on


Setup

var a = [];
    for (var i = 0, max = 100; i < max; i++) {
      a[i] = i;
    }
    
    var result = [];
    
    function someFunction(input) {
      result.push(input);
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Default For
for (var i = 0; i < a.length; i++) {
  someFunction(a[i]);
}
ready
For with stored length
for (var i = 0, l = a.length; i < l; i++) {
  someFunction(a[i]);
}
ready
Reversed For
for (var i = a.length; i--;) {
  someFunction(a[i]);
}
ready
Reversed For, verbose
for (var i = a.length; i > 0; i--) {
  someFunction(a[i - 1]);
}
ready
Default While
var i = 0;
while (i < a.length) {
  someFunction(a[i]);
  i++;
}
ready
Reversed While
var i = a.length;
while (i--) {
  someFunction(a[i]);
}
ready
For...In
for (var i in a) {
  someFunction(a[i]);
}
ready
Do...While
var i = a.length;
do {
  someFunction(a[i - 1]);
} while (--i);
ready
Do...While, shortened
var i = a.length;
do {
  someFunction(a[--i]);
} while (i);
ready
Reversed For, verbose 2
for (var i = a.length; i > 0;) {
  someFunction(a[--i]);
}
ready

Revisions

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

  • Revision 2: published by Daniel Ferenc on