Loops

JavaScript performance comparison

Revision 38 of this test case created by D. S. Schneider

Preparation code

<script>
  var arr = new Array(100);
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
while loop that imitates a for loop
var i = 0;
while (i < arr.length) {
  arr[i];
  i++;
};
pending…
while loop that imitates a for loop, caching the length
var i = 0,
    len = arr.length;
while (i < len) {
  arr[i];
  i++;
};
pending…
Reverse while loop
var i = arr.length;
while (i--) {
  arr[i];
};
pending…
Reverse while loop without implicit ToBoolean
var i = arr.length;
while (i-- > 0) {
  arr[i];
};
pending…
Reverse do … while loop
var i = arr.length;
do {
  arr[i];
} while (i--);
pending…
Reverse for loop
for (var i = arr.length; i--;) {
  arr[i];
};
pending…
Old ’n’ busted for loop
for (var i = 0; i < arr.length; ++i) {
  arr[i];
};
pending…
Old ’n’ busted for loop, caching the length
for (var i = 0, len = arr.length; i < len; ++i) {
  arr[i];
};
pending…
Cool guy loop
for (var i = -1; ++i < arr.length;) {
  arr[i];
};
pending…
Cool guy loop, caching the length
for (var i = -1, len = arr.length; ++i < len;) {
  arr[i];
};
pending…
Native Array#forEach implementation
arr.forEach(function(x) {
  x;
});
pending…
Native Array#forEach implementation with named function
function foo(x) {
  x;
};
arr.forEach(foo);
pending…
Reverse for loop with pre-increment
for (var i = arr.length; --i;) {
    arr[i];
};
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

1 comment

D. S. Schneider (revision owner) commented :

My game, Starship, is heavily dependant on loops, so I've got really interested in this subject. Thank you for publishing this great testing engine and thank you all who collaborated with it.

Comment form temporarily disabled.

Add a comment