ES6 Map vs Object Get (v237)

Revision 237 of this benchmark created by Eric Anderson on


Setup

var smallMapStrings = new Map();
  var smallMapNumbers = new Map();
  var largeMapStrings = new Map();
  var largeMapNumbers = new Map();
  
  var smallObjStrings = {}
  var smallObjNumbers = {}
  var largeObjStrings = {};
  var largeObjNumbers = {};
  
  for (var i=0; i<10_000 ; i++) {
    if (i < 10) {
      smallMapStrings.set(`key${i}`, Math.random());
      smallMapNumbers.set(i, Math.random());
      smallObjStrings[`key${i}`] = Math.random();
      smallObjNumbers[i] = Math.random();
    }
    largeMapStrings.set(`key${i}`, Math.random());
    largeMapNumbers.set(i, Math.random());   
    largeObjStrings[`key${i}`] = Math.random();
    largeObjNumbers[i] = Math.random();
  }

Test runner

Ready to run.

Testing in
TestOps/sec
largeObjNumbers[miss]
let temp = largeObjNumbers["key0"];
ready
smallObjStrings[miss]
let temp = smallObjStrings[0];
ready
smallMapNumbers.get(miss)
let temp = smallMapNumbers.get("key0");
ready
smallMapStrings.get(miss)
let temp = smallMapStrings.get(0);
ready
largeMapStrings.get(miss)
let temp = largeMapStrings.get(0);
ready
smallObjNumbers[miss]
let temp = smallObjNumbers["key0"];
ready
largeMapNumbers.get(miss)
let temp = largeMapNumbers.get("key0");
ready
largeObjStrings[miss]
let temp = largeObjStrings[0];
ready

Revisions

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