Map vs Object (3)
Lookup of map vs object
Date tested:
one month ago
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Test name
Executions per second
Map get
27.0 Ops/sec
Obj get
22.7 Ops/sec
Map set
24.5 Ops/sec
Obj set
17.8 Ops/sec
Map get after all
11.7 Ops/sec
Obj get after all
10.3 Ops/sec
Benchmark definition (click to collapse):
Script Preparation code:
var map = new Map(); var obj = {}; var i = 0, count = 100000, a; function getKey(i) { return `i-${i}`; } // set default values for (i = 0; i < count; i++) { var key = getKey(i); var value = { i, key }; map.set(key, value); obj[key] = value; }
Tests:
Map get
for (i = 0; i < count; i++) { a = map.get(getKey(i)); }
Obj get
for (i = 0; i < count; i++) { a = obj[getKey(i)]; }
Map set
for (i = 0; i < count; i++) { var value = { i, key }; map.set(getKey(i + count), value); }
Obj set
for (i = 0; i < count; i++) { var value = { i, key }; obj[getKey(i + count)] = value; }
Map get after all
for (i = 0; i < count * 2; i++) { a = map.get(getKey(i)); }
Obj get after all
for (i = 0; i < count * 2; i++) { a = obj[getKey(i)]; }
Open this result on MeasureThat.net