object spread vs immutable-js set vs native Map vs object
Date tested:
7 months ago
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Test name
Executions per second
object spread
6945.3 Ops/sec
immutable-js
15497.3 Ops/sec
native Map
50121.5 Ops/sec
Object
67968.7 Ops/sec
Benchmark definition (click to collapse):
HTML Preparation code:
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.2/immutable.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/immutability-helper@2.7.0/index.min.js"></script>
Tests:
object spread
let obj = {}; for(i=0;i<100;i++){ const key = 'key'+i const value = 'value'+i obj = {...obj, [key]: {key, value}} }
immutable-js
let obj = Immutable.Map(); for(i=0;i<100;i++){ const key = 'key'+i const value = 'value'+i obj = obj.set(key, {key, value}) }
native Map
let obj = new Map(); for(i=0;i<100;i++){ const key = 'key'+i const value = 'value'+i obj.set(key, {key, value}) }
Object
let obj = {}; for(i=0;i<100;i++){ const key = 'key'+i const value = 'value'+i obj[key] = {key, value}; }
Open this result on MeasureThat.net