getElementsByTagName loop test

Benchmark created by John-David Dalton on


Preparation HTML

<div id="foo"></div>
<script>
  function addElements(element, num) {
   var result = [],
       div = document.createElement('div');
   for (var i = 0; i < num; i++) {
    result[i] = element.appendChild(div.cloneNode(false));
   }
   return result;
  }
  
  function dummy1(element) {
   dummy3(element);
  }
  
  function dummy2(elements) {
   var element, i = -1;
   while (element = elements[++i]) {
    if (element.nodeType == 1) {
     dummy3(element);
    }
   }
  }
  
  function dummy3() {}
  
  var foo = document.getElementById('foo');
  
  (function() {
   var element, elements = addElements(foo, 100);
   while (element = elements.pop()) addElements(element, 100);
  })();
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Multiple
var nodes = foo.getElementsByTagName('*'),
    length = nodes.length
    
    
    
    while (length--) {
  dummy1(nodes[length]);
    }
ready
Single
dummy2(foo.getElementsByTagName('*'));
ready

Revisions

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

  • Revision 1: published by John-David Dalton on