Script Preparation code:
x
 
const ITERATIONS = 500000;
var index = ITERATIONS/2;
var n = Math.random();
var list = [];
for (let i = 0; i < length; i += 1) {
  list.push(Math.random());
}
Tests:
  • Array clone with spread operator

     
    const clone = [...list];
  • Array clone with slice

     
    const clone = list.slice();
  • Array addition with spread operator

     
    const clone = [...list, n];
  • Array addition with slice and push

     
    const clone = list.slice();
    clone.push(n);
  • Array removal with spread operator

     
    const clone = [
          ...list.slice(0, index),
          ...list.slice(index + 1),
        ];
  • Array removal with slice and splice

     
    const clone = list.slice();
    clone.splice(index, 1);
  • Array update with spread operator

     
    const clone = [
          ...list.slice(0, index),
          n,
          ...list.slice(index + 1),
        ];
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array clone with spread operator
    Array clone with slice
    Array addition with spread operator
    Array addition with slice and push
    Array removal with spread operator
    Array removal with slice and splice
    Array update with spread operator

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 10 days ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36
Chrome 135 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Array clone with spread operator 24693186.0 Ops/sec
Array clone with slice 118929880.0 Ops/sec
Array addition with spread operator 21538724.0 Ops/sec
Array addition with slice and push 28114982.0 Ops/sec
Array removal with spread operator 16770662.0 Ops/sec
Array removal with slice and splice 51222256.0 Ops/sec
Array update with spread operator 15066070.0 Ops/sec