Caching Array Length

JavaScript performance comparison

Revision 40 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…
while 2
var len = theArray.length;
while (--len) {
   copyOfTheArray[len] = theArray[len];
}
pending…
With caching Part 3
var i = theArray.length - 1;
for (; i >= 0; --i) {
  copyOfTheArray[i] = theArray[i];
}
pending…
cc
for(var i=theArray.length;i>0;copyOfTheArray[--i]=theArray[i]);
pending…
cc2
for(var i=theArray.length;i--;copyOfTheArray[i]=theArray[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:

0 comments

Add a comment