Script Preparation code:
x
 
const SIZE = 1_000_000;
const original = Array.from({length: SIZE}, (_, i) => i);
Tests:
  • spread

     
    const copy = [...original];
  • slice

     
    const copy = original.slice();
  • Array.from

     
    const copy = Array.from(original);
  • map

     
    const copy = original.map((x) => x);
  • for

     
        const copy = [];
        for (let i = 0; i < original.length; i++) {
            copy[i] = original[i];
        }
  • while

     
        const copy = [];
        let i = 0;
        while (i < original.length) {
            copy[i] = original[i];
            i++;
        }
  • structuredClone

     
    const copy = structuredClone(original);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    spread
    slice
    Array.from
    map
    for
    while
    structuredClone

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 18 days ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0
Firefox 137 on Windows
View result in a separate tab
Test name Executions per second
spread 132.9 Ops/sec
slice 836.4 Ops/sec
Array.from 129.0 Ops/sec
map 132.2 Ops/sec
for 189.5 Ops/sec
while 187.7 Ops/sec
structuredClone 28.8 Ops/sec