Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
lodash deepPick vs ramda deepPick
(version: 1)
Comparing performance of:
lodash deepPick vs ramda deepPick
Created:
7 months ago
by:
Guest
Jump to the latest result
HTML Preparation code:
<script src='https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js'></script> <script src="//cdn.jsdelivr.net/npm/ramda@latest/dist/ramda.min.js"></script>
Script Preparation code:
const pickPathsLodash = (paths, obj) => _.reduce( paths, (result, path) => { const value = _.get(obj, path); if (value !== undefined) { _.set(result, path, value); } return result; }, {} ); const pickPathsRamda = R.curry((paths, obj) => R.reduce( (acc, path) => { const value = R.path(path, obj); return value !== undefined ? R.assocPath(path, value, acc) : acc; }, {}, paths ) ); const largeSourceObject = {}; const pathsToKeep = []; const pathsToKeepLodash = []; for (let i = 0; i < 50; i++) { _.set(largeSourceObject, `level1_${i}.level2.level3`, { value: i, timestamp: Date.now() }); // We'll pick about half of the paths if (i % 2 === 0) { pathsToKeep.push([`level1_${i}`, 'level2', 'level3', 'value']); pathsToKeepLodash.push(`level1_${i}.level2.level3.value`); } }
Tests:
lodash deepPick
pickPathsLodash(pathsToKeepLodash, largeSourceObject);
ramda deepPick
pickPathsRamda(pathsToKeep, largeSourceObject);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
lodash deepPick
ramda deepPick
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
7 months ago
)
User agent:
Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.7 Mobile/15E148 Safari/604.1
Browser/OS:
Mobile Safari 18 on iOS 18.7
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
lodash deepPick
31026.8 Ops/sec
ramda deepPick
66251.1 Ops/sec
Related benchmarks:
Getters
hoek vs lodash
babel transpiled optional chaining vs safeGet
babel transpiled optional chaining vs safeGet vs optional chaining
lodash.get vs optional chaining vs safeGet
lodash.get vs optional chaining vs safeGet vs dlv
safeGet comparison (PR)
lodash set vs custom set
lodas pick vs plain function
Comments
Confirm delete:
Do you really want to delete benchmark?