Tests:
  • createElement

    AخA
     
    const list = [];
    let n = 0;
    while(true) {
        n++;
        const div = document.createElement('div');
        const p = document.createElement('p');
        p.classList.add('font-bold');
        p.textContent = 'Hello!';
        div.appendChild(p);
        list.push(div);
        if(n===100000) 
            break;
    }
  • cloneNode (deep)

     
    const list = [];
    let n = 0;
        const div = document.createElement('div');
        const p = document.createElement('p');
        p.classList.add('font-bold');
        p.textContent = 'Hello!';
        div.appendChild(p);
    while(true) {
        n++;
        list.push(div.cloneNode(false));
        if(n===100000) 
            break;
    }
  • innerHTML

     
    const list = [];
    let n = 0;
    while(true) {
        n++;
        const div = document.createElement('div');
        div.innerHTML = '<p class="font-bold">Hello!</p>';
        list.push(div);
        if(n===100000) 
            break;
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    createElement
    cloneNode (deep)
    innerHTML

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (iPhone; CPU iPhone OS 15_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/112.0.5615.167 Mobile/15E148 Safari/604.1
Chrome Mobile iOS 112 on iOS 15.1
View result in a separate tab
Test name Executions per second
createElement 2.3 Ops/sec
cloneNode (deep) 14.1 Ops/sec
innerHTML 1.9 Ops/sec