Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
deep freeze vs deep clone
can be used in similar ways when you want immutable data
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64; rv:134.0) Gecko/20100101 Firefox/134.0
Browser:
Firefox 134
Operating system:
Linux
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
deepFreeze
5828569.5 Ops/sec
deepClone
754112.9 Ops/sec
Script Preparation code:
function deepClone (obj) { const result = {} for (const key in obj) { const value = obj[key] if (value !== null && typeof value === 'object') { result[key] = deepClone(value) } else { result[key] = value } } return result } function deepFreeze (obj) { for (const key in obj) { const value = obj[key] if (value !== null && typeof value === 'object') { if (Object.isFrozen(value) === false) { deepFreeze(value) } } } return Object.freeze(obj) } var source = { foo: 'foo', bar: 'bar', baz: 'baz', qux: { foo: 'foo', bar: 'bar', baz: 'baz', qux: { foo: 'foo', bar: 'bar', baz: 'baz', qux: { foo: 'foo', bar: 'bar', baz: 'baz', qux: 'qux' } } } }
Tests:
deepFreeze
deepFreeze(source)
deepClone
deepClone(source)