Array push() vs unshift() (v36)

Revision 36 of this benchmark created by Pete L on


Description

Tests the performance difference of using two different ways of filling arrays at the start. The two TCs produce the same result.

Test runner

Ready to run.

Testing in
TestOps/sec
push()
var a = [];
a.push(22);
a.push(21);
a.push(20);
a.push(19);
a.push(18);
a.push(17);
a.push(16);
a.push(15);
a.push(14);
a.push(13);
a.push(12);
a.push(11);
a.push(10);
a.push(9);
a.push(8);
a.push(7);
a.push(6);
a.push(5);
a.push(4);
a.push(3);
a.push(2);
a.push(1);
a.reverse();
var v = 0;
for (var i = 0; i < a.length; i++) {
  v += a[i];
}
ready
unshift()
var a = [];
a.unshift(22);
a.unshift(21);
a.unshift(20);
a.unshift(19);
a.unshift(18);
a.unshift(17);
a.unshift(16);
a.unshift(15);
a.unshift(14);
a.unshift(13);
a.unshift(12);
a.unshift(11);
a.unshift(10);
a.unshift(9);
a.unshift(8);
a.unshift(7);
a.unshift(6);
a.unshift(5);
a.unshift(4);
a.unshift(3);
a.unshift(2);
a.unshift(1);
var v = 0;
for (var i = 0; i < a.length; i++) {
  v += a[i];
}
ready
push, iterate in reverse order
var a = [];
a.push(22);
a.push(21);
a.push(20);
a.push(19);
a.push(18);
a.push(17);
a.push(16);
a.push(15);
a.push(14);
a.push(13);
a.push(12);
a.push(11);
a.push(10);
a.push(9);
a.push(8);
a.push(7);
a.push(6);
a.push(5);
a.push(4);
a.push(3);
a.push(2);
a.push(1);
var v = 0;
for (var i = a.length - 1; i >= 0; i--) {
  v += a[i];
}
ready

Revisions

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