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
deepFreeze
5.8M/s
deepClone
754K/s
View exact numbers
Test name
Executions per second
✓
deepFreeze
5,828,570 Ops/sec
deepClone
754,113 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)