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: 2 years ago)
Mozilla/5.0 (Linux; Android 11; SAMSUNG SM-N975F) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/17.0 Chrome/96.0.4664.104 Mobile Safari/537.36
Chrome Mobile 96 on Android
View result in a separate tab
Test name Executions per second
Array clone with spread operator 6392825.0 Ops/sec
Array clone with slice 6868095.5 Ops/sec
Array addition with spread operator 2304945.8 Ops/sec
Array addition with slice and push 2516468.2 Ops/sec
Array removal with spread operator 1555341.4 Ops/sec
Array removal with slice and splice 3126453.8 Ops/sec
Array update with spread operator 1049134.9 Ops/sec