Array Performance

JavaScript performance comparison

Revision 151 of this test case created by

Preparation code

<script>
  Benchmark.prototype.setup = function() {
    var a1 = [];
    for(var i = 0 ; i < 50000 ; i++)
    {
        a1[i] = {id: i, name: 'name1'};
    }


    var a2 = new Array(50000);
    a2[29938] = {id: 29938, name: 'name1'};
    a2[32994] = {id: 32994, name: 'name1'};

    var o = {};
    o['29938'] = {id: 29938, name: 'name1'};
    o['32994'] = {id: 32994, 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
Manual Array Lookup
var id = 29938;
for (var i = 0; i < a1.length; i++) {
  if (a1[i].id == id) {
    result = a1[i];
    break;
  }
}
pending…
Holey Array by Index
var id = 29938;
var result = a2[id];
pending…
Object by Key
var id = '29938';
var result = o[id];
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.

1 Comment

Claim commented :

I recommend using revision 151 (just wrote it).

a1 - i init an array and fill it with 50000 objects (not just two, Jesus Christ, first test case doesn't make any sense, sure it's fastest if it has only 2 elements :p)

a2 - made a new Array(50000) call - don't know if that makes any sense and/or difference, but I'm working on array with predefined length ;) (yeah, i know it can change dynamically either way, but browser might optimize a lot when you've got fixed length array).

a3 - no changes made

Enjoy ;).