Script Preparation code:
x
 
const arrayCount = 500;
const arraySize = 4;
var arrays = [];
for(let i = 0; i < arrayCount; i++) {
  arrays.push(Array.from({length: arraySize}, () => Math.floor(Math.random() * 40)));
}
              
Tests:
  • push

     
    let result = [];
    arrays.forEach(curr => {result.push(...curr)});
  • concat

     
    let result = [];
    arrays.forEach(curr => {result = result.concat(curr)});
  • concat spread

     
    let result = [];
    result = result.concat(...arrays);
  • push apply

     
    let result = [];
    arrays.forEach(curr => {Array.prototype.push.apply(result, curr);});
  • concat apply

     
    let result = [];
    result = Array.prototype.concat.apply(result, arrays);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    push
    concat
    concat spread
    push apply
    concat apply

    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/89.0.4389.86 YaBrowser/21.3.0.740 Yowser/2.5 Safari/537.36
Yandex Browser 21 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
push 53422.2 Ops/sec
concat 2723.3 Ops/sec
concat spread 58486.4 Ops/sec
push apply 8999.6 Ops/sec
concat apply 56559.1 Ops/sec