HTML Preparation code:
x
 
1
<html>
2
3
<body>
4
    <div id='test'>
5
        <div name='a'></div>
6
        <div name='b'></div>
7
        <div name='c'></div>
8
    </div>
9
</body>
10
11
</html>
Script Preparation code:
 
var parent = document.getElementById('test');
Tests:
  • childNodes

     
    parent.childNodes.forEach(function (node) {
      let n = node;
    });
  • children

     
    for (let i = 0; i < parent.children.length; i++) {
      let n = parent.children[i];
    }
  • firstChild nextSibling

     
    let elem = parent.firstChild;
    do {
      let n = elem;
    } while (elem = elem.nextSibling)
  • firstElementChild nextElementChild

     
    let elem = parent.firstElementChild;
    do {
      let n = elem;
    } while (elem = elem.nextElementSibling)
  • ChildNodes2

     
    let children = parent.childNodes;
    for (let i = 0; i < children.length; i++) {
      let n = children[i];
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    childNodes
    children
    firstChild nextSibling
    firstElementChild nextElementChild
    ChildNodes2

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 5 months ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Chrome 130 on Windows
View result in a separate tab
Test name Executions per second
childNodes 1170831.1 Ops/sec
children 1717997.5 Ops/sec
firstChild nextSibling 7975128.0 Ops/sec
firstElementChild nextElementChild 11051960.0 Ops/sec
ChildNodes2 3174580.8 Ops/sec