HTML Preparation code:
x
 
1
<!-- article out start -->
2
<article>
3
  <!-- article in start -->
4
  <h1>Lorem ipsum</h1>
5
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cumque, nostrum.</p>
6
  <!-- article in end -->
7
</article>
8
<!-- article out end -->
9
10
<!-- article out start -->
11
<article>
12
  <!-- article in start -->
13
  <h1>Lorem ipsum</h1>
14
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cumque, nostrum.</p>
15
  <!-- article in end -->
16
</article>
17
<!-- article out end -->
18
19
<!-- article out start -->
20
<article>
21
  <!-- article in start -->
22
  <h1>Lorem ipsum</h1>
23
  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cumque, nostrum.</p>
24
  <!-- article in end -->
25
</article>
26
<!-- article out end -->
Tests:
  • TreeWalker

     
    const treeWalker = document.createTreeWalker(
      document.body,
      NodeFilter.SHOW_ELEMENT,
    );
    const list = [];
    let element;
    while (element = treeWalker.nextNode()) {
        list.push(element);
    }
    const elements = list.filter(el => el instanceof HTMLElement);
  • querySelectorAll

     
    const elements = Array.from(document.body.querySelectorAll('*')).filter(node => node instanceof HTMLElement);
  • NodeIterator

     
    const nodeIterator = document.createNodeIterator(
      document.body,
      NodeFilter.SHOW_ELEMENT,
    );
    const list = [];
    let element;
    while (element = nodeIterator.nextNode()) {
        list.push(element);
    }
    const elements = list.filter(el => el instanceof HTMLElement);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    TreeWalker
    querySelectorAll
    NodeIterator

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:135.0) Gecko/20100101 Firefox/135.0
Firefox 135 on Mac OS X 10.15
View result in a separate tab
Test name Executions per second
TreeWalker 957828.6 Ops/sec
querySelectorAll 1055229.0 Ops/sec
NodeIterator 966471.2 Ops/sec