Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Lodash cloneDeep vs deepFreeze vs deepClone vs JSON.parse(JSON.stringify())
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/136.0.0.0 YaBrowser/25.6.0.0 Safari/537.36
Browser:
Yandex Browser 25
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
10 months ago
Test name
Executions per second
Lodash cloneDeep
304688.9 Ops/sec
custom deepFreeze()
1304006.6 Ops/sec
custom deepClone()
2087775.0 Ops/sec
JSON
601802.8 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
var MyObject = { description: 'Creates a deep copy of source, which should be an object or an array.', myNumber: 123456789, myBoolean: true, array: [1,2,3,4,5,6,7,8,9,0], nestedObject: { a: [{x: 1}, {x: 1}, {x: 1}], b: [{x: 1}, {x: 1}, {x: 1}], c: [{x: 1}, {x: 1}, {x: 1}] }, jayson: { stringify: 'JSON.stringify() method converts a JavaScript value to a JSON string....', parse: 'JSON.parse() method parses a JSON string...' } }; var myCopy = null; function deepFreeze(x) { if (!x || typeof x !== 'object') { return x; } if (Array.isArray(x)) { const y = []; for (let i = 0; i < x.length; i++) { y.push(deepFreeze(x[i])); } return Object.freeze(y); } const y = {}; for (const key in x) { if (x.hasOwnProperty(key)) { y[key] = deepFreeze(x[key]); } } return Object.freeze(y); } function deepClone(x) { if (!x || typeof x !== 'object') { return x; } if (Array.isArray(x)) { const y = []; for (let i = 0; i < x.length; i++) { y.push(deepClone(x[i])); } return y; } const y = {}; for (const key in x) { if (x.hasOwnProperty(key)) { y[key] = deepClone(x[key]); } } return y; }
Tests:
Lodash cloneDeep
myCopy = _.cloneDeep(MyObject);
custom deepFreeze()
myCopy = deepFreeze(MyObject)
custom deepClone()
myCopy = deepClone(MyObject);
JSON
myCopy = JSON.parse(JSON.stringify(MyObject));