for loop research

JavaScript performance comparison

Test case created

Info

Varius for-loop variants: * with length caching * with various counter increment (++i, i++) * while alternative

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var arr = [];
   
    for (var i=0; i<1000; i++) {
      arr.push('arr-value-' + i);
    }
   
    function worker() {
      return(1+1);
    }
};
</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
classic for-loop
for (var i=0; i < arr.length; i++) {
  worker();
}
pending…
++i
for (var i=0; i < arr.length; ++i) {
  worker();
}
pending…
caching length in loop
for (var i=0, len=arr.length; i<len; i++) {
  worker();
}
pending…
caching length outside loop
var len=arr.length;

for (var i=0; i<len; i++) {
  worker();
}
pending…
double caching length
var len=arr.length;

for (var i=0, ilen=len; i<ilen; i++) {
  worker();
}
pending…
while alternative i--
var i = arr.length;
while (i--) {
  worker();
};
pending…
while alternative --i
var i = arr.length;
while (--i) {
  worker();
};
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:

0 comments

Add a comment