Test name | Executions per second |
---|---|
Conspicuous Map lookup & delete | 2438.3 Ops/sec |
Conspicuous Obj lookup & delete | 130.9 Ops/sec |
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
}
for (let i=0; i<keyCount; i++) {
let seed = Math.random()
let key = getConspicuousKey(seed)
a = map.get(key)
if (a) map.delete(key)
}
for (let i=0; i<keyCount; i++) {
let seed = Math.random()
let key = getConspicuousKey(seed)
a = obj[key]
if (a) delete obj[key]
}