Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Deep Clone Performance - JSON vs Lodash vs Ramda vs Native
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/144.0.0.0 Safari/537.36
Browser:
Chrome 144
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 months ago
Test name
Executions per second
JSON Stringfy
2424848.5 Ops/sec
Lodash cloneDeep
1433200.2 Ops/sec
Ramda Copy
1083482.8 Ops/sec
Recursive Copy
2432944.0 Ops/sec
Recursive Copy Distinct
5627410.5 Ops/sec
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js'></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>
Script Preparation code:
var obj = {a: "hello", c: "test", po: 33, arr: [1, 2, 3, 4], anotherObj: {a: 33, str: "whazzup"}}; var myCopy = null;
Tests:
JSON Stringfy
myCopy = JSON.parse(JSON.stringify(obj));
Lodash cloneDeep
myCopy = _.cloneDeep(obj);
Ramda Copy
myCopy = R.clone(obj);
Recursive Copy
var deepCopy = function(obj) { var out = Array.isArray(obj) ? [] : {}; for (var key in obj) { var v = obj[key]; out[key] = (typeof v === 'object') ? deepCopy(v) : v; } return out; }; myCopy = deepCopy(obj);
Recursive Copy Distinct
var deepCopy = function(block) { var out = null; if (Array.isArray(block)) { out = []; for (var index = 0; index < block.length; ++index) { var subArray = block[index]; out.push((typeof subArray === 'object') ? deepCopy(subArray) : subArray); } } else { out = {}; for (var key in block) { var subObject = block[key]; out[key] = (typeof subObject === 'object') ? deepCopy(subObject) : subObject; } } return out; }; myCopy = deepCopy(obj);