Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Lodash 2.2.0 cloneDeep vs JSON Clone w/ large nested object
(version: 1)
Comparing performance of:
Lodash cloneDeep vs Json clone
Created:
6 years ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.2.0/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...' }, a: [ { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, { a: { a: [ { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, { a: { a: 1 } }, ] } }, ] }; var myCopy = null;
Tests:
Lodash cloneDeep
myCopy = _.cloneDeep(MyObject);
Json clone
myCopy = JSON.parse(JSON.stringify(MyObject));
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
Lodash cloneDeep
Json clone
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
8 months ago
)
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36
Browser/OS:
Chrome 140 on Mac OS X 10.15.7
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Lodash cloneDeep
2495.7 Ops/sec
Json clone
23412.7 Ops/sec
Autogenerated LLM Summary
(model
llama3.1:latest
, generated one year ago):
A new benchmarking challenge! To answer your question, I'll need to follow these steps: 1. Understand the code and setup provided in the HTML Preparation Code section. 2. Analyze the test cases provided in the Individual test cases section. 3. Interpret the latest benchmark result provided. However, before I can provide a response, I'd like to clarify that there are two test cases: **Test Case 1: Lodash cloneDeep** ```javascript myCopy = _.cloneDeep(MyObject); ``` This uses the `_.cloneDeep()` function from Lodash to create a deep copy of the `MyObject` object. **Test Case 2: JSON clone** ```javascript myCopy = JSON.parse(JSON.stringify(MyObject)); ``` This uses the built-in `JSON.stringify()` and `JSON.parse()` functions to create a deep copy of the `MyObject` object. Please let me know which test case you'd like me to focus on or if you have any specific questions about these test cases!
Related benchmarks:
Object cloning with Lodash clone vs cloneDeep vs merge vs ES6 object spread vs ES6 Object.assign vs JSON.parse(JSON.stringify())
cloneDeep vs JSON stringify + parse (long arr)
Lodash cloneDeep vs JSON parse
Object cloning with Lodash clone vs cloneDeep vs merge vs structuredClone vs JSON.parse(JSON.stringify(o))
Comments
Confirm delete:
Do you really want to delete benchmark?