Caching Array Length

JavaScript performance comparison

Revision 11 of this test case created

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var theArray = ["Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Aliquam", "non", "lobortis", "lectus", "in", "tristique", "risus", "Pellentesque", "eget", "vehicula", "diam", "In", "gravida", "turpis", "ipsum", "at", "pulvinar", "mauris", "consequat", "sed", "Interdum", "et", "malesuada", "fames", "ac", "ante", "ipsum", "primis", "in", "faucibus", "Etiam", "luctus", "consectetur", "erat", "vitae", "gravida", "Nunc", "pulvinar", "nisl", "eros", "ut", "feugiat", "urna", "fringilla", "vestibulum", "Proin", "lectus", "metus", "malesuada", "ut", "risus", "ut", "tincidunt", "faucibus", "mi", "Praesent", "nunc", "est", "vulputate", "quis", "pretium", "eu", "commodo", "vel", "nisl", "Morbi", "id", "feugiat", "turpis", "Donec", "enim", "magna", "cursus", "et", "semper", "vitae", "imperdiet", "sit", "amet", "est", "Maecenas", "urna", "mi", "lacinia", "sit", "amet", "mollis", "id", "pretium", "laoreet", "odio", "Phasellus", "consequat", "lorem", "tortor", "sit", "amet", "dignissim", "elit", "vestibulum", "quis", "Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Aliquam", "non", "lobortis", "lectus", "in", "tristique", "risus", "Pellentesque", "eget", "vehicula", "diam", "In", "gravida", "turpis", "ipsum", "at", "pulvinar", "mauris", "consequat", "sed", "Interdum", "et", "malesuada", "fames", "ac", "ante", "ipsum", "primis", "in", "faucibus", "Etiam", "luctus", "consectetur", "erat", "vitae", "gravida", "Nunc", "pulvinar", "nisl", "eros", "ut", "feugiat", "urna", "fringilla", "vestibulum", "Proin", "lectus", "metus", "malesuada", "ut", "risus", "ut", "tincidunt", "faucibus", "mi", "Praesent", "nunc", "est", "vulputate", "quis", "pretium", "eu", "commodo", "vel", "nisl", "Morbi", "id", "feugiat", "turpis", "Donec", "enim", "magna", "cursus", "et", "semper", "vitae", "imperdiet", "sit", "amet", "est", "Maecenas", "urna", "mi", "lacinia", "sit", "amet", "mollis", "id", "pretium", "laoreet", "odio", "Phasellus", "consequat", "lorem", "tortor", "sit", "amet", "dignissim", "elit", "vestibulum", "quis", "Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Aliquam", "non", "lobortis", "lectus", "in", "tristique", "risus", "Pellentesque", "eget", "vehicula", "diam", "In", "gravida", "turpis", "ipsum", "at", "pulvinar", "mauris", "consequat", "sed", "Interdum", "et", "malesuada", "fames", "ac", "ante", "ipsum", "primis", "in", "faucibus", "Etiam", "luctus", "consectetur", "erat", "vitae", "gravida", "Nunc", "pulvinar", "nisl", "eros", "ut", "feugiat", "urna", "fringilla", "vestibulum", "Proin", "lectus", "metus", "malesuada", "ut", "risus", "ut", "tincidunt", "faucibus", "mi", "Praesent", "nunc", "est", "vulputate", "quis", "pretium", "eu", "commodo", "vel", "nisl", "Morbi", "id", "feugiat", "turpis", "Donec", "enim", "magna", "cursus", "et", "semper", "vitae", "imperdiet", "sit", "amet", "est", "Maecenas", "urna", "mi", "lacinia", "sit", "amet", "mollis", "id", "pretium", "laoreet", "odio", "Phasellus", "consequat", "lorem", "tortor", "sit", "amet", "dignissim", "elit", "vestibulum", "quis", "Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Aliquam", "non", "lobortis", "lectus", "in", "tristique", "risus", "Pellentesque", "eget", "vehicula", "diam", "In", "gravida", "turpis", "ipsum", "at", "pulvinar", "mauris", "consequat", "sed", "Interdum", "et", "malesuada", "fames", "ac", "ante", "ipsum", "primis", "in", "faucibus", "Etiam", "luctus", "consectetur", "erat", "vitae", "gravida", "Nunc", "pulvinar", "nisl", "eros", "ut", "feugiat", "urna", "fringilla", "vestibulum", "Proin", "lectus", "metus", "malesuada", "ut", "risus", "ut", "tincidunt", "faucibus", "mi", "Praesent", "nunc", "est", "vulputate", "quis", "pretium", "eu", "commodo", "vel", "nisl", "Morbi", "id", "feugiat", "turpis", "Donec", "enim", "magna", "cursus", "et", "semper", "vitae", "imperdiet", "sit", "amet", "est", "Maecenas", "urna", "mi", "lacinia", "sit", "amet", "mollis", "id", "pretium", "laoreet", "odio", "Phasellus", "consequat", "lorem", "tortor", "sit", "amet", "dignissim", "elit", "vestibulum", "quis", "Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Aliquam", "non", "lobortis", "lectus", "in", "tristique", "risus", "Pellentesque", "eget", "vehicula", "diam", "In", "gravida", "turpis", "ipsum", "at", "pulvinar", "mauris", "consequat", "sed", "Interdum", "et", "malesuada", "fames", "ac", "ante", "ipsum", "primis", "in", "faucibus", "Etiam", "luctus", "consectetur", "erat", "vitae", "gravida", "Nunc", "pulvinar", "nisl", "eros", "ut", "feugiat", "urna", "fringilla", "vestibulum", "Proin", "lectus", "metus", "malesuada", "ut", "risus", "ut", "tincidunt", "faucibus", "mi", "Praesent", "nunc", "est", "vulputate", "quis", "pretium", "eu", "commodo", "vel", "nisl", "Morbi", "id", "feugiat", "turpis", "Donec", "enim", "magna", "cursus", "et", "semper", "vitae", "imperdiet", "sit", "amet", "est", "Maecenas", "urna", "mi", "lacinia", "sit", "amet", "mollis", "id", "pretium", "laoreet", "odio", "Phasellus", "consequat", "lorem", "tortor", "sit", "amet", "dignissim", "elit", "vestibulum", "quis"];
   
    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…
TEST
var i = 0,
len = theArray.length;
for (; i < len; 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