Script Preparation code:
x
 
var map = new Map();
var set = new Set();
var obj = {};
var arr = [];
var weakMap = new WeakMap();
var weakSet = new WeakSet();
const a = Array.from({
    length: 1000
});
var vals = a.map(v => Math.random() * 1000);
var valsString = a.map(v => String(Math.random() * 1000));
var valsObj = a.map(v => {
    return {
        v: Math.random() * 1000
    }
});
Tests:
  • map

     
    vals.forEach(va => map.set(va, va))
  • set

     
    vals.forEach(va => set.add(va))
  • obj

     
    valsString.forEach(va => obj[va] = va)
  • arr

     
    valsString.forEach(va => arr.push(va))
  • WeakMap

     
    valsObj.forEach(va => weakMap.set(va, va))
  • WeakSet

     
    valsObj.forEach(va => weakSet.add(va))
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    map
    set
    obj
    arr
    WeakMap
    WeakSet

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15
Safari 15 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
map 49272.3 Ops/sec
set 50025.0 Ops/sec
obj 20027.5 Ops/sec
arr 18869.7 Ops/sec
WeakMap 81331.9 Ops/sec
WeakSet 104240.1 Ops/sec