copy-loop vs. Array.slice (v22)

Revision 22 of this benchmark created on


Description

The performance difference between copying an array by hand and copying it by slicing it (completely). This is for short arrays.

Setup

var list = ['aa','bb','cc','dd','ee','ff','dd','ee','ff'];

Test runner

Ready to run.

Testing in
TestOps/sec
Copy-Loop push
var copy = new Array();
for ( var i=0;i<list.length; i++ ) copy.push(list[i]);
ready
Array-Slice
var copy = list.slice(0);
ready
while-copy-loop
var i = list.length;
var copy = new Array(i);
while (i--) copy.push(list[i]);
ready
for loop no method call
var copy = new Array();
for ( var i=0;i<list.length; i++ ) copy[i] = list[i];
ready
Copy-Loop push []
var copy = [];
for ( var i=0;i<list.length; i++ ) copy.push(list[i]);
ready
concat self
var copy = list.concat();
ready
concat []
var copy = [].concat(list);
ready
concat proto
var copy = Array.prototype.concat(list);
ready
for loop no method call reserved by length
var copy = [];
copy.length = list.length;
for ( var i=0;i < list.length; i++ ) copy[i] = list[i];
ready
for loop no method call reserved by length 2
var copy = new Array();
copy.length = list.length;
for ( var i=0;i < list.length; i++ ) copy[i] = list[i];
ready
for loop no method call reserved
var copy = new Array(list.length);
for ( var i = 0;i < list.length; i++ ) copy[i] = list[i];
ready
While-Paul
var i = list.length;
var copy = new Array(i);
while (i--) {
  copy[i] = list[i];
}
ready
While-Paul no new
var i = list.length;
var copy = Array(i);
while (i--) {
  copy[i] = list[i];
}
ready
for loop decr
var i = list.length;
var copy = Array(i);
for(;--i;){
copy[i] = list[i];
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.