array.length vs. cached (v24)

Revision 24 of this benchmark created by yarikos on


Description

fix several length of array; added functional expression and declared funcion call

Setup

var smallArr = lengthenArray(10);
    bigArr = lengthenArray(1000);
    
    function lengthenArray(source, times) {
      var arr = [];
      for (var i = 0; i < times; i++) {
        arr.push(i);
      }
      return arr;
    }
    
    function cached(a) {
      var count = 0;
      for (var i = 0, length = a.length; i < length; ++i) {
        count++;
      }
      return count;
    }
    
    
    function notCached(a) {
      var count = 0;
      for (var i = 0; i < a.length; ++i) {
        count++;
      }
      return count;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
small not-cached functional expression
(function (a) {
  var sum = 0;
  for (var i = 0; i < a.length; ++i) {
    sum++;
  }
  return sum;
})(smallArr)
ready
small cached functional expression
(function (a) {
  var sum = 0;
  for (var i = 0, aLen = a.length; i < aLen; ++i) {
    sum++;
  }
  return sum;
})(smallArr)
 
ready
big not-cached functional expression
(function (a) {
  var sum = 0;
  for (var i = 0; i < a.length; ++i) {
    sum++;
  }
  return sum;
})(bigArr)
ready
big cached functional expression
(function (a) {
  var sum = 0;
  for (var i = 0, aLen = a.length; i < aLen; ++i) {
    sum++;
  }
  return sum;
})(bigArr)
 
ready
small not-cached function call
notCached(smallArr)
ready
small cached function call
cached(smallArr)
ready
big not-cached function call
notCached(bigArr)
ready
big cached function call
cached(bigArr)
ready

Revisions

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