clone once vs many
Date tested:
2 months ago
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36
Test name
Executions per second
clone Many
111078.2 Ops/sec
clone Once
159579.0 Ops/sec
Benchmark definition (click to collapse):
HTML Preparation code:
<div id="par"></div>
Script Preparation code:
let A=[document.createElement('a'),document.createElement('span'),document.createElement('div')]; let B=document.getElementById('par')
Tests:
clone Many
let rc=()=>{ let a=[A[2].cloneNode(),A[2].cloneNode(),A[2].cloneNode(),A[2].cloneNode(),A[2].cloneNode()]; a[4].appendChild(a[3]); a[3].appendChild(a[2]); a[2].appendChild(a[1]); a[1].appendChild(a[0]); return a; } let DC= new DocumentFragment(); for (let i = 0; i < 12; ++i) { let z = rc(); DC.appendChild(z[4]); }
clone Once
let a=[A[2].cloneNode(),A[2].cloneNode(),A[2].cloneNode(),A[2].cloneNode(),A[2].cloneNode()]; a[4].setAttribute('data-abc','1'); a[4].appendChild(a[3]); a[3].appendChild(a[2]); a[2].appendChild(a[1]); a[1].appendChild(a[0]); let DC= new DocumentFragment(); for (let i = 0; i < 12; ++i) { DC.appendChild(a[4].cloneNode(true)); } let x=DC.querySelectorAll('data-abc')
Open this result on MeasureThat.net