Caching Array Length

JavaScript performance comparison

Revision 48 of this test case created

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var theArray = ["", 56,
      function() {},
      93, "lalala", {}
    ];
    var copyOfTheArray = [];
};
</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
With caching
var len = theArray.length;
for (var i = 0; i < len; i++) {
  copyOfTheArray[i] = theArray[i];
}
pending…
Without caching
for (var i = 0; i < theArray.length; i++) {
  copyOfTheArray[i] = theArray[i];
}
pending…
With caching Part 2
var i = 0;
for (var x in theArray) {
  copyOfTheArray.push(x);
  i++;
}
pending…
while
var len = theArray.length;
while (len--) {
  copyOfTheArray[len] = theArray[len];
}
pending…
forEach()
theArray.forEach(function(value, i) {
  copyOfTheArray[i] = value;
});
pending…
item in for
for (var i = 0, item; item = theArray[i]; i++) {
  copyOfTheArray[i] = item;
}
pending…
item in for with push
for (var i = 0, item; item = theArray[i]; i++) {
  copyOfTheArray.push(item);
}
pending…
loop cached function
function arrayForEach(array, action) {
  for (var i = 0, j = array.length; i < j; i++)
    action(array[i], i);
}

arrayForEach(theArray, function(item) {
  e = item;
});
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