Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
immutable object/set/array
check performance of adding/removing items from immutable data structures like array, object, Set and Immutable.Set
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Browser:
Chrome 127
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
object
9.8 Ops/sec
array
364.3 Ops/sec
set
250.2 Ops/sec
immutable set
2947.5 Ops/sec
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>
Script Preparation code:
function shuffle(arr) { let i = arr.length; while (i != 0) { let j = Math.floor(Math.random() * i); i--; [arr[i], arr[j]] = [ arr[j], arr[i]]; } } n = 1000 toRemove = []; for (i = 0; i < n; i++) { toRemove.push("value" + i); } shuffle(toRemove);
Tests:
object
let a = {}; // copy object and add item for (i = 0; i < n; i++) { a = {...a}; a["value" + i] = null; } // copy object and remove item toRemove.forEach(v => { a = {...a}; delete a[v]; });
array
let a = []; // copy array and add item for (i = 0; i < n; i++) { a = [...a]; a.push("value" + i); } // copy array and remove item toRemove.forEach(v => { a = a.filter(x => x !== v); });
set
let a = new Set(); // copy set and add item for (i = 0; i < n; i++) { a = new Set(a); a.add("value" + i); } // copy set and remove item toRemove.forEach(v => { a = new Set(a); a.delete(v); });
immutable set
let a = Immutable.Set(); // add item for (i = 0; i < n; i++) { a = a.add("value" + i); } // remove item toRemove.forEach((v) => { a = a.delete(v); });