copy-loop vs. Array.slice (v6)

Revision 6 of this benchmark created by Si Robertson on


Description

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

updated

1: Fixed some loops to avoid potential errors with zero-length arrays. 2: Cleaned things up generally.

Setup

var list = new Array( "a", "b", "c", "d", "e" );

Test runner

Ready to run.

Testing in
TestOps/sec
Slice
var copy = list.slice();
ready
For
var copy = new Array();

for( var i = 0, n = list.length; i < n; i ++ ) {
    copy[ i ] = list[ i ];
}
ready
While
var i    = -1;
var n    = list.length;
var copy = new Array( n );

while( ++ i < n ) {
    copy[ i ] = list[ i ];
}
ready
While Reversed
var i    = list.length;
var copy = Array( i );

while( -- i > 0 ) {
  copy[ i ] = list[ i ];
}
ready
Pointless Pushing
var i    = -1;
var n    = list.length;
var copy = new Array();

while( ++ i < n ) {
    copy.push( list[ i ] )
}
ready

Revisions

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