Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
iterating from a filled object VS iterating from a map
Comparing the overall performance when iterating on an object VS when iterating on a map
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36
Browser:
Chrome 145
Operating system:
Windows
Device Platform:
Desktop
Date tested:
4 months ago
small - ITERATE on map
2.8M/s
small - ITERATE on filled object
575K/s
big - ITERATE on map
207/s
big - ITERATE on filled object
9/s
View exact numbers
Test name
Executions per second
✓
small - ITERATE on map
2,815,522 Ops/sec
small - ITERATE on filled object
575,418 Ops/sec
big - ITERATE on map
207 Ops/sec
big - ITERATE on filled object
9 Ops/sec
Script Preparation code:
var smallArray = Array.from(Array(100).keys()); var bigArray = Array.from(Array(1000000).keys()); var constructObjectByAppendingToIt = (arr) => { const obj = {} for (const index of arr) { obj[index] = { someProp: index }; } return obj } var smallFilledObject = constructObjectByAppendingToIt(smallArray); var bigFilledObject = constructObjectByAppendingToIt(bigArray); var smallMap = new Map(smallArray.map((index) => [index, { someProp: index }])); var bigMap = new Map(bigArray.map((index) => [index, { someProp: index }]));
Tests:
small - ITERATE on filled object
for (const [index, value] of Object.entries(smallFilledObject)) { value.someProp ** 2; }
big - ITERATE on filled object
for (const [index, value] of Object.entries(bigFilledObject)) { value.someProp ** 2; }
small - ITERATE on map
for (const [index, value] of smallMap) { value.someProp ** 2; }
big - ITERATE on map
for (const [index, value] of bigMap) { value.someProp ** 2; }