Fastest array loops in Javascript

JavaScript performance comparison

Revision 504 of this test case created by Lasse

Preparation code


      
      <script>
Benchmark.prototype.setup = function() {
  var arr = [];
  var arr2 = [];
  for (var i = 0; i < 1000; i++) arr[i] = i;
  
  function someFn(a) {
    arr2.push(a);
    return a * 5 + 1 / 3 * 8 + '234224';
  };

};
</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
For loop, basic
for (var i = 0; i < arr.length; i++) {
  someFn(arr[i]);
}
pending…
For loop, basic, preinc
for (var i = 0; i < arr.length; ++i) {
  someFn(arr[i]);
}
pending…
While loop, basic
var i = 0;
while (i < arr.length) {
  someFn(arr[i++]);
}
pending…
For loop, cached
for (var i = 0, len = arr.length; i < len; i++) {
  someFn(arr[i]);
}
pending…
For loop, dec
for (var i = arr.length - 1; i >= 0; i--) {
  someFn(arr[i]);
}
pending…
Do-while loop, --i
var i = arr.length;
if (i) do {
  someFn(arr[--i]);
} while (i);
pending…
shift()
while (arr.length) {
  someFn(arr.shift());
}
pending…
pop()
while (arr.length) {
  someFn(arr.pop());
}
pending…
forEach
arr.forEach(function (v) {
  someFn(v)
})
pending…
forEach direct
arr.forEach(someFn);
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