ES6 Map vs Object properties (v53)

Revision 53 of this benchmark created on


Description

Compare native Map implementation vs an object without hasOwnProperty as a hash map.

Setup

var map = new Map();
    var obj1 = Object.create(null);
    var obj2 = {};
    
    for (var i = 0; i < 1000; i++) {
       var key = '' + Math.random(), val = '' + Math.random();
       
       map.set(key, val);
       obj1[key] = val;
       obj2[key] = val;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Iterate null-prototype Object (for in)
var buf = '';
for (var key in obj1) {
    buf += obj1[key];
}
ready
Iterate Object (for in)
var buf = '';
for (var key in obj2) {
    buf += obj2[key];
}
ready
Iterate Map (for of keys)
var buf = '';
var keys = map.keys();

for (var key of keys) {
    buf += map.get(key);
}
ready
Iterate Map (for of values)
var buf = '';
var vals = map.values();

for (var val of vals) {
    buf += val;
}
ready
Iterate Map (forEach)
var buf = '';

map.forEach(function (key, val) {
    buf += val;
});
ready
Iterate Map (for...of)
var buf = '';

for (var m of map) {
    buf += m[1];
}
ready

Revisions

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