Array push reverse vs. unshift reverse

JavaScript performance comparison

Test case created by XP1

Info

Array push reverse vs. unshift reverse

See http://jsperf.com/forloop-vs-reverse-while-loop-and-array-reverse/9 for array reverse vs custom loops.

See http://jsperf.com/array-push-vs-unshift/6 for array push vs. unshift reversal.

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
    var length = array.length;
   
    function reverse(array) {
      var length = array.length;
      var start = null;
      var end = null;
      for (start = 0; start < length / 2; start += 1) {
        var temporary = array[start];
        end = length - 1 - start;
        array[start] = array[end];
        array[end] = temporary;
      }
      return array;
    }
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
push
var temporary = [];
var i = null;
for (i = 0; i < length; i += 1) {
  temporary.push(array[i]);
}
array = temporary;
pending…
push reverse
var temporary = [];
var i = null;
for (i = 0; i < length; i += 1) {
  temporary.push(array[i]);
}
array = reverse(temporary);
pending…
unshift
var temporary = [];
var i = null;
for (i = 0; i < length; i += 1) {
  temporary.unshift(array[i]);
}
array = temporary;
pending…
unshift reverse
var temporary = [];
var i = null;
for (i = 0; i < length; i += 1) {
  temporary.unshift(array[i]);
}
array = reverse(temporary);
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment