for vs forEach

JavaScript performance comparison

Revision 513 of this test case created by Chet Manley

Preparation code


      
      <script>
Benchmark.prototype.setup = function() {
  var i = 0,
      length = 0,
      sum = 0,
      values = [];
  
  
  for (i = 0; i < 10000; i++) {
      values[i] = Math.random();
  }
  
  function add(val) {
      sum += val;
  }
  

};

Benchmark.prototype.teardown = function() {
  i = 0;
  length = 0;
  sum = 0;
  values = [];

};
</script>

Test runner

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

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
forEach
values.forEach(add);
pending…
for loop
for (i = 0; i < values.length; i++) {
    sum += values[i];
}
pending…
for loop, cached length
length = values.length;
for (i = 0; i < length; i++) {
    sum += values[i];
}
pending…
for loop, cached length, callback
length = values.length;
for (i = 0; i < length; i++) {
    add(values[i]);
}
pending…
while loop
i = 0;
while (i < values.length) {
    sum += values[i];
    i++;
}
pending…
while loop, cached length
length = values.length;
i = 0;
while (i < length) {
    sum += values[i];
    i++;
}
pending…
while loop, cached length, callback
length = values.length;
i = 0;
while (i<length) {
    add(values[i], i, values);
    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.

0 Comments