pop vs shift on a array (v35)

Revision 35 of this benchmark created on


Description

If you can choose between a .pop() or .shift() on a Array, what would be a wise decision?

As my http://jsperf.com/adding-items-array/6 test shows the unshift is awful for performance. The same counts for .shift(), awful performance.

Setup

function foo(item) {
      // Do something with item
    }

Test runner

Ready to run.

Testing in
TestOps/sec
.pop()
var array1 = new Array(100);
var i = array1.length;
while (i--) {
 foo(array1.pop());
}
ready
.shift()
var array1 = new Array(100);
var i = array1.length;
while (i--) {
 foo(array1.shift());
}
ready
.splice beginning
var array1 = new Array(100);
var i = array1.length;
while (i--) {
 foo(array1.splice(0, 1)[0]);
}
ready
.splice end
var array1 = new Array(100);
var i = array1.length;
while (i--) {
 foo(array1.splice(i, 1)[0]);
}
ready
Decrement .length
var array1 = new Array(100);
var i = array1.length;
while (i--) {
 foo(array1[i]);
 // Beware, setting the length to < 0 will throw an exception
 --array1.length;
}
ready

Revisions

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