caching length (v17)

Revision 17 of this benchmark created by wgshim on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

Setup

var arr = [];
    for (var i = 0; i < 1000; i++) {
      arr[i] = Math.random();
    }

Test runner

Ready to run.

Testing in
TestOps/sec
cached
for (var i = 0, len = arr.length; i < len; i++) {
  arr[i] *= 2;
}
ready
not cached
for (var i = 0; i < arr.length; i++) {
  arr[i] *= 2;
}
ready
for ... in
for (var i in arr) {
  arr[i] *= 2;
}
ready
while loop
var len = arr.length;
while (len--) {
  arr[len] *= 2;
}
ready
idiom
for (var i = 0, value; value = arr[i]; i++) {
  arr[i] = value * 2;
}
ready
Prefix Increment
for (var i = 0; i < arr.length; ++i) {
  arr[i] *= 2;
}
ready
Prefix + Cached
for (var i = 0, len = arr.length; i < len; ++i) {
  arr[i] *= 2;
}
ready
Array map
arr.map(function(el) {
  return el * 2;
});
ready
forEach element
arr.forEach(function(element, index, array) {
  element *= 2;
});
ready
forEach index
arr.forEach(function(element, index, array) {
  array[index] *= 2;
});
ready

Revisions

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