Script Preparation code:
x
 
function getRandomElement(id) {
  return {
    id,
    a: Math.random(),
    b: Math.random(),
    c: Math.random(),
  }
}
function getArray(length) {
  const result = [];
  for (let i = 0; i < length; i++) {
    result.push(getRandomElement(i))
  }
  
  return result;
}
function arrayToMap(array) {
  return new Map(array.map(el => [el.id, el]));
}
function getRandomInt(max) {
  return Math.floor(Math.random() * max);
}
array_small = getArray(3);
array_large = getArray(10);
map_small = arrayToMap(array_small);
map_large = arrayToMap(array_large);
Tests:
  • Array.find, 10 000 elements

     
    const target = getRandomInt(2);
    array_small.find(el => el.id === target);
  • Map.get, 10 000 elements

     
    const target = getRandomInt(2);
    map_small.get(target);
  • Array.find, 1 000 000 elements

     
    const target = getRandomInt(9);
    array_large.find(el => el.id === target);
  • Map.get, 1 000 000 elements

     
    const target = getRandomInt(9);
    map_large.get(target)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Array.find, 10 000 elements
    Map.get, 10 000 elements
    Array.find, 1 000 000 elements
    Map.get, 1 000 000 elements

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36
Chrome 121 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
Array.find, 10 000 elements 1624539.6 Ops/sec
Map.get, 10 000 elements 1634853.6 Ops/sec
Array.find, 1 000 000 elements 1606226.5 Ops/sec
Map.get, 1 000 000 elements 1720538.9 Ops/sec