eof loop cache (v3)

Revision 3 of this benchmark created on


Preparation HTML

<script>
  var items = [1,2,3,4,5,6,7,8,9], 
      devNull, 
      divs = document.querySelectorAll('div'),
      deadDivs = Array.prototype.slice.call(divs),
      divs2 = document.getElementsByTagName('div'),
      deadDivs2 = Array.prototype.slice.call(divs2);
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
cache
for (var i = 0, c = items.length; i < c; i++) {
    devNull = items[i] * 2;
}
ready
no cache
for (var i = 0; i < items.length; i++) {
    devNull = items[i] * 2;
}
ready
NodeList cache
for (var i = 0, c = divs.length; i < c; i++) {
    devNull = divs[i];
}
ready
NodeList no cache
for (var i = 0; i < divs.length; i++) {
    devNull = divs[i];
}
ready
Array NodeList cache
for (var i = 0, c = deadDivs.length; i < c; i++) {
    devNull = deadDivs[i];
}
ready
Array NodeList no cache
for (var i = 0; i < deadDivs.length; i++) {
    devNull = deadDivs[i];
}
ready
HTMLCollection cache
for (var i = 0, c = divs2.length; i < c; i++) {
    devNull = divs2[i];
}
ready
HTMLCollection no cache
for (var i = 0; i < divs2.length; i++) {
    devNull = divs2[i];
}
ready
Array HTMLCollection cache
for (var i = 0, c = deadDivs2.length; i < c; i++) {
    devNull = deadDivs2[i];
}
ready
Array HTMLCollection no cache
for (var i = 0; i < deadDivs2.length; i++) {
    devNull = deadDivs2[i];
}
ready
Dynamic array HTMLCollection cache
var deadDivs3 = Array.prototype.slice.call(divs2);
for (var i = 0, c = deadDivs3.length; i < c; i++) {
    devNull = deadDivs3[i];
}
ready
Dynamic Array NodeList cache
var deadDivs4 = Array.prototype.slice.call(divs);
for (var i = 0, c = deadDivs4.length; i < c; i++) {
    devNull = deadDivs4[i];
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.