Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Map vs Object - Insertion, Lookup, Update & Deletion
Insertion, Lookup, Update & Deletion of Map vs Object. Keys length: 20. Loop length: 100000.
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15
Browser:
Safari 17
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
10 months ago
Test name
Executions per second
Map
21.3 Ops/sec
Object
19.4 Ops/sec
Script Preparation code:
const map = new Map(); const obj = {}; const baseKey = '00000000000000000000'; const getKey = (index) => { let key = baseKey; const chars = [...index.toString()]; for (let i = 0; i < chars.length; i++) { key[i] = chars[i]; } return key; };
Tests:
Map
// 1: insert, lookup & update for (let i = 0; i < 100000; i++) { const key = getKey(i); map.set(key, 'value'); const _ = map.get(key); map.set(key, 'newValue'); } // 2: delete all keys for (let i = 0; i < 100000; i++) { const key = getKey(i); map.delete(key); } // 3: insert, lookup & update again for (let i = 0; i < 100000; i++) { const key = getKey(i); map.set(key, 'value'); const _ = map.get(key); map.set(key, 'newValue'); }
Object
// 1: insert, lookup & update for (let i = 0; i < 100000; i++) { const key = getKey(i); obj[key] = 'value'; const _ = obj[key]; obj[key] = 'newValue'; } // 2: delete all keys for (let i = 0; i < 100000; i++) { const key = getKey(i); delete obj[key]; } // 3: insert, lookup & update again for (let i = 0; i < 100000; i++) { const key = getKey(i); obj[key] = 'value'; const _ = obj[key]; obj[key] = 'newValue'; }