Array Performance

JavaScript performance comparison

Revision 125 of this test case created by

Preparation code

<script>
  Benchmark.prototype.setup = function() {
    var a1 = [
      {id: 12, name: 'name1'}, 
      {id: 16, name: 'name1'}, 
      {id: 29, name: 'name1'}, 
      {id: 32, name: 'name1'}
    ];

    var a2 = [];
    a2[12] = {id: 12, name: 'name1'};
    a2[16] = {id: 16, name: 'name1'};
    a2[29] = {id: 29, name: 'name1'};
    a2[32] = {id: 32, name: 'name1'};

    var o1 = {};
    o1['12'] = {id: 12, name: 'name1'};
    o1['16'] = {id: 16, name: 'name1'};
    o1['29'] = {id: 29, name: 'name1'};
    o1['32'] = {id: 32, name: 'name1'};

    var o2 = {};
    o2[12] = {id: 12, name: 'name1'};
    o2[16] = {id: 16, name: 'name1'};
    o2[29] = {id: 29, name: 'name1'};
    o2[32] = {id: 32, name: 'name1'};

  };
</script>
    

Test runner

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

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
Object by numeric Key
var id = 29;
var result = o2[id];
pending…
Manual Array Lookup ===
var a1Length = a1.length, result = false, id = 29;

for (var i = 0; i < a1Length && !result; i++) 
  if (a1[i].id === id) result = a1[i];
pending…
Holey Array by Index
var id = 29;
var result = a2[id];
pending…
Object by string Key
var id = '29';
var result = o1[id];
pending…
Manual Array Lookup ==
var a1Length = a1.length, result = false, id = 29;

for (var i = 0; i < a1Length && !result; i++)
  if (a1[i].id == id) result = a1[i];
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.

0 Comments