Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
deep copy test123
(version: 0)
Comparing performance of:
lodash vs json
Created:
3 years ago
by:
Guest
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script>
Script Preparation code:
var testArray = [{ description: 'Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.', testNumber: 123456789, testBoolean: true, testObject: { testString: 'test string', testNumber: 12345 }, testArray: [{ myName: 'test name', myNumber: 123245 }] },{ description: 'Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.Random description.', testNumber: 123456789, testBoolean: true, testObject: { testString: 'test string', testNumber: 12345 }, testArray: [{ myName: 'test name', myNumber: 123245 }] }]; var testCopy = null; var deepClone = function(obj) { var out; if (Array.isArray(obj)) { out = []; for (var index = 0; index < obj.length; ++index) { let subArray = obj[index]; out.push((subArray === null) ? subArray : (subArray instanceof Date) ? new Date(subArray.valueOf()) : (typeof subArray === 'object') ? deepClone(subArray) : subArray); } } else { out = {}; for (var key in obj) { var subObject = obj[key]; out[key] = subObject === null ? subObject : subObject instanceof Date ? new Date(subObject.valueOf()) : (typeof subObject === 'object') ? deepClone(subObject) : subObject; } } return out; };
Tests:
lodash
testCopy = _.cloneDeep(testArray);
json
testCopy = JSON.parse(JSON.stringify(testArray));
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
lodash
json
Fastest:
N/A
Slowest:
N/A
Latest run results:
No previous run results
This benchmark does not have any results yet. Be the first one
to run it!
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
Let's break down the provided benchmark JSON and explain what is being tested. **Benchmark Definition** The test case has two individual benchmarks, each with its own script preparation code. The first one uses Lodash.js library to create a deep clone of an array (`testCopy = _.cloneDeep(testArray)`), while the second one uses the built-in `JSON.parse(JSON.stringify())` method to achieve the same result (`testCopy = JSON.parse(JSON.stringify(testArray))`). **Options being compared** In this case, we have two options: 1. **Lodash.js**: A popular JavaScript library that provides a set of utility functions for various tasks, including array manipulation. 2. **Built-in `JSON.parse(JSON.stringify())` method**: This is a built-in JavaScript method that can be used to create a deep clone of an object. **Pros and Cons** Here's a brief overview of the pros and cons of each option: 1. **Lodash.js**: * Pros: Highly customizable, robust, and widely adopted. * Cons: Additional library dependency, may have performance overhead due to function call overhead. 2. **Built-in `JSON.parse(JSON.stringify())` method**: * Pros: Fast, lightweight, and doesn't require additional dependencies. * Cons: Can be brittle if the original object has cyclic references or non-serializable properties. **Other considerations** In this specific benchmark, we can also consider the impact of using a library (Lodash.js) versus a built-in method (JSON.parse(JSON.stringify())). While Lodash.js provides more features and flexibility, it may incur a performance penalty due to its additional function call overhead. On the other hand, the built-in method is faster but less customizable. **Library used: Lodash.js** The library being used in this benchmark is Lodash.js, which is a popular JavaScript utility library developed by Isaac Schlueter and the Lodash team. It provides a wide range of functions for tasks such as array manipulation, object transformation, and more. **Special JS feature or syntax** In this benchmark, there is no special JavaScript feature or syntax being used. The code relies solely on standard JavaScript features and built-in methods.
Related benchmarks:
Switch vs. dictionary
Tenary vs dictionary
Nested tenary vs dictionary
Nested tenary vs dictionary 222
Comments
Confirm delete:
Do you really want to delete benchmark?