Script Preparation code:
x
 
var keyCount = 16384
var keys = []
var map = new Map()
var obj = {}
// Hide lookup keys to prevent V8 cheating (AKA Optimizing)
var getConspicuousKey = seed => keys[Math.floor(seed * keyCount)]
// Setup out test objects w/ random values
for (let i=0; i<keyCount; i++) {
  let val = Math.random()
  let key = Math.random()
  keys.push(key)
  map.set(key,val)
  obj[key] = val
}
var mapEntries = map.entries();
var objJson = JSON.stringify(obj);
Tests:
  • Conspicuous Map lookup

     
    for (let i=0; i<keyCount; i++) {
      let seed = Math.random()
      let key = getConspicuousKey(seed)
      a = map.get(key)
    }
  • Conspicuous Obj lookup

     
    for (let i=0; i<keyCount; i++) {
      let seed = Math.random()
      let key = getConspicuousKey(seed)
      a = obj[key]
    }
  • Conspicuous Map lookup 2

     
    for (let i=0; i<keyCount; i++) {
      let seed = Math.random()
      let key = getConspicuousKey(seed)
      a = map.get(key)
    }
  • Conspicuous Obj lookup 2

     
    for (let i=0; i<keyCount; i++) {
      let seed = Math.random()
      let key = getConspicuousKey(seed)
      a = obj[key]
    }
  • Map.entries

     
    map.entries();
  • JSON.stringify

     
    JSON.stringify(obj);
  • parse Map entries

     
    var test = new Map(mapEntries);
  • parse JSON

     
    var test = JSON.parse(objJson);
  • encode & decode Map

     
    var mapEncoded = map.entries();
    var decoded = new Map(mapEncoded);
  • encode & decode JSON

     
    var encoded = JSON.stringify(obj);
    var decoded = JSON.parse(encoded);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Conspicuous Map lookup
    Conspicuous Obj lookup
    Conspicuous Map lookup 2
    Conspicuous Obj lookup 2
    Map.entries
    JSON.stringify
    parse Map entries
    parse JSON
    encode & decode Map
    encode & decode JSON

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Chrome 115 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Conspicuous Map lookup 147.1 Ops/sec
Conspicuous Obj lookup 128.8 Ops/sec
Conspicuous Map lookup 2 147.6 Ops/sec
Conspicuous Obj lookup 2 129.7 Ops/sec
Map.entries 29962716.0 Ops/sec
JSON.stringify 293.3 Ops/sec
parse Map entries 7525545.5 Ops/sec
parse JSON 293.1 Ops/sec
encode & decode Map 1121.7 Ops/sec
encode & decode JSON 144.0 Ops/sec