Script Preparation code:
x
 
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;
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    small - ITERATE on filled object
    big - ITERATE on filled object
    small - ITERATE on map
    big - ITERATE on map

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 months ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0
Chrome 131 on Windows
View result in a separate tab
Test name Executions per second
small - ITERATE on filled object 523470.5 Ops/sec
big - ITERATE on filled object 4.9 Ops/sec
small - ITERATE on map 3238170.5 Ops/sec
big - ITERATE on map 186.5 Ops/sec