Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Lodash cloneDeep vs structuredClone vs JSON Parse vs JSON indirect parse vs in-house deepcopy
https://developer.mozilla.org/en-US/docs/Web/API/structuredClone
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/123.0.0.0 Safari/537.36
Browser:
Chrome 123
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Lodash cloneDeep
597783.7 Ops/sec
Native structuredClone
81082.8 Ops/sec
JSON Parse
1189524.9 Ops/sec
Indirect JSON Parse
1098014.4 Ops/sec
In-house deepcopy
1701146.5 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, jayson: { stringify: 'JSON.stringify() method converts a JavaScript value to a JSON string....', parse: 'JSON.parse() method parses a JSON string...' } }; var myCopy = null; var s = ''; function deepcopy(o) { if (o instanceof Array) { return Array.from(o, deepcopy) } const c = Object.assign({}, o) for (const k of Object.keys(o)) { if (typeof o[k] === 'object' && o[k]) { c[k] = deepcopy(o[k]) } } return c }
Tests:
Lodash cloneDeep
myCopy = _.cloneDeep(MyObject);
Native structuredClone
myCopy = structuredClone(MyObject);
JSON Parse
myCopy = JSON.parse(JSON.stringify(MyObject));
Indirect JSON Parse
s = JSON.stringify(MyObject); myCopy = JSON.parse(s);
In-house deepcopy
myCopy = deepcopy(MyObject);