Script Preparation code:
x
 
var LIMIT = 10000;
var ARRAY = [];
var OBJECT = {};
var SPARSE_ARRAY = [];
var SPARSE_OBJECT = {};
for (var i = 0; i < LIMIT; i++) {
  ARRAY[i] = i;
  OBJECT[i] = i;
  if (i % 2 === 0) {
    SPARSE_ARRAY[i] = i;
    SPARSE_OBJECT[i] = i;
  }
}
Tests:
  • Array

     
    var total = 0;
    var target = ARRAY;
    for (var i = 0; i < LIMIT; i++) {
      total += target[i];
    }
    return total;
  • Object

     
    var total = 0;
    var target = OBJECT;
    for (var i = 0; i < LIMIT; i++) {
      total += target[i];
    }
    return total;
  • Sparse Array

     
    var total = 0;
    var target = SPARSE_ARRAY;
    for (var i = 0; i < LIMIT; i++) {
      if (i in target) {
        total += target[i];
      }
    }
    return total;
  • Sparse Object

     
    var total = 0;
    var target = SPARSE_OBJECT;
    for (var i = 0; i < LIMIT; i++) {
      if (i in target) {
        total += target[i];
      }
    }
    return total;
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array
    Object
    Sparse Array
    Sparse Object

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 8 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Chrome 53 on Mac OS X 10.11.6
View result in a separate tab
Test name Executions per second
Array 1200.4 Ops/sec
Object 1192.4 Ops/sec
Sparse Array 1096.4 Ops/sec
Sparse Object 1120.1 Ops/sec