JS: Array.reverse() vs while loop (v36)

Revision 36 of this benchmark created by Dillon on


Description

Checking performance of Array.reverse() vs a quick while loop.

Setup

var len = 10000,
      arr = new Array(len),
      backwardI = len - 1,
      forwardI = 0,
      j = len - 1,
      l = len,
      i = 0,
      k = 0,
      t = [];
    
    for (var i = 0; i < len; i += 1) {
      arr[i] = Math.random();
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Array.reverse()
arr.reverse();
ready
Backward while loop
backwardI = len - 1;
while (backwardI > -1) {
  arr.push(arr[backwardI]);
  arr.splice(backwardI, 1);
  backwardI--;
}
ready
Forward while loop
forwardI = 0;
while (forwardI < len) {
  var end = (len - 1) - forwardI;
  arr.push(arr[end]);
  arr.splice(end, 1);
  forwardI++;
}
ready
while tmp array
i = 0;
l = len - 1;
while (l) {
  t[i++] = arr[--l];
}
arr = t;
ready
X reverse
i = 0;
j = len - 1;
while (i < j) {
  t = arr[i];
  arr[i++] = arr[j];
  arr[j--] = t;
};
ready

Revisions

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