Script Preparation code:
AخA
 
var simpleTemplate = document.createElement("template");
simpleTemplate.innerHTML = `<span class="simple"></span>`;
  
var complexTemplate = document.createElement("template");
  complexTemplate.innerHTML = 
  `<span class="complex">
      <span class="simple-1"></span>
      <span class="simple-2">
          <span class="simple-2-1"></span>
      </span>
      <span class="simple-3">
          <span class="simple-3-1"></span>
      </span>
      <span class="simple-4"></span>
  </span>`;
Tests:
  • Simple - Template

     
    let el = document.createElement("div");
    let content = document.importNode(simpleTemplate,true);
    el.appendChild(content);
  • Simple - JavaScript

     
    let el = document.createElement("div");
    let content = document.createElement("span")
    content.classList.add("simple");
    el.appendChild(content);
  • Simple - innerHTML

     
    let el = document.createElement("div");
    el.innerHTML = `<span class="simple"></span>`;
  • Complex - Template

     
    let el = document.createElement("div");
    let content = complexTemplate.content.cloneNode(true);
    el.appendChild(content);
  • Complex - JavaScript

    x
     
    let el = document.createElement("span");
    el.classList.add("complex");
    let span1 = document.createElement("span");
    span1.classList.add("simple-1");
    let span2 = document.createElement("span");
    span2.classList.add("simple-2");
    let span21 = document.createElement("span");
    span21.classList.add("simple-2-1");
    span2.appendChild(span21);
    let span3 = document.createElement("span");
    span3.classList.add("simple-3");
    let span31 = document.createElement("span");
    span31.classList.add("simple-31");
    span3.appendChild(span31);
    let span4 = document.createElement("span");
    span4.classList.add("simple-4");
    el.append(span1, span2, span3, span4);
  • Complex - innerHTML

     
    let el = document.createElement("div");
    el.innerHTML = `<span class="complex">
          <span class="simple-1"></span>
          <span class="simple-2">
              <span class="simple-2-1"></span>
          </span>
          <span class="simple-3">
              <span class="simple-3-1"></span>
          </span>
          <span class="simple-4"></span>
      </span>`;
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Simple - Template
    Simple - JavaScript
    Simple - innerHTML
    Complex - Template
    Complex - JavaScript
    Complex - innerHTML

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 months ago)
Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0
Firefox 133 on Linux
View result in a separate tab
Test name Executions per second
Simple - Template 735748.1 Ops/sec
Simple - JavaScript 643094.9 Ops/sec
Simple - innerHTML 630207.8 Ops/sec
Complex - Template 195863.6 Ops/sec
Complex - JavaScript 112561.8 Ops/sec
Complex - innerHTML 166828.5 Ops/sec