Tests:
  • push

    AخA
     
    let a = [];
    for (let i = 0; i < 1000; i += 1) {
      const values = [i, 10000 + i, 100000 + i];
      values.forEach(value => {
        a.push(value);
      });
    }
  • push.apply

     
    let a = [];
    for (let i = 0; i < 1000; i += 1) {
      const values = [i, 10000 + i, 100000 + i];
      Array.prototype.push.apply(a, values);
    }
  • push spread

     
    let a = [];
    for (let i = 0; i < 1000; i += 1) {
      const values = [i, 10000 + i, 100000 + i];
      a.push(...values);
    }
  • reassign spread

     
    let a = [];
    for (let i = 0; i < 1000; i += 1) {
      const values = [i, 10000 + i, 100000 + i];
      a = [...a, ...values];
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    push
    push.apply
    push spread
    reassign spread

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
Chrome 96 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
push 63342.6 Ops/sec
push.apply 7093.2 Ops/sec
push spread 70863.2 Ops/sec
reassign spread 620.2 Ops/sec