Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Immer vs shallow vs ramda assocPath (nested structure light)
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Browser:
Chrome 120
Operating system:
Linux
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
immer
187275.5 Ops/sec
shallow copy
3327021.0 Ops/sec
ramda assocPath
1905698.0 Ops/sec
HTML Preparation code:
<script src="https://unpkg.com/immer@9.0.7/dist/immer.umd.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
Script Preparation code:
var { assocPath } = R var object = { one: 1, two: 2, three: 3, four: 4, five: 5, array: Array.from({ length: 10000 }).map(() => Math.random()) } var INITIAL_DATA = { one: { two: { three: { four: { five: 5, object }, object }, object }, object }, two: { three: { four: { five: 5, object }, object }, object }, three: { four: { five: 5, object }, object }, four: { five: 5, object }, five: 5 } var produce = immer.default
Tests:
immer
data = produce(INITIAL_DATA, draft => { draft.four.five = 0; })
shallow copy
data = { four: { five: 0, ...INITIAL_DATA.four }, ...INITIAL_DATA }
ramda assocPath
data = assocPath(['four', 'five'], 0, INITIAL_DATA)