Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
lodash.uniq vs native Set (multi array)
(version: 1)
Comparing performance of:
lodash.uniq vs Native Set
Created:
4 years ago
by:
Registered User
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 lorem = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sit amet ex tincidunt, venenatis lacus ut, rhoncus enim. Cras auctor mollis tortor, eu varius risus gravida egestas. Nam vitae erat malesuada, interdum ligula nec, lobortis dolor. Nunc nibh magna, hendrerit eget dui eu, consequat sagittis enim. Proin ac rutrum ligula. Nunc et nunc quis est consectetur interdum. Phasellus quis dapibus ligula, eget varius metus. Proin orci eros, dignissim nec malesuada ac, pretium non lorem. Donec a elementum nibh. Aliquam feugiat blandit lorem a congue. Donec mi arcu, luctus a pretium et, euismod a nisl. Donec laoreet sapien in felis volutpat consectetur. Donec sed justo quis augue tincidunt dictum. Sed elit justo, sodales eget ex id, rutrum congue tortor. Nunc vel arcu dolor. Mauris nulla libero, consequat non sollicitudin eu, tristique condimentum dui. Donec vulputate euismod libero, in rutrum nibh maximus ut. Sed nisi ex, efficitur at augue sed, imperdiet iaculis dolor. Nunc vehicula scelerisque nulla ut aliquet. Phasellus sit amet nisl vel est cursus pulvinar ut vel est. Mauris ac ligula condimentum, varius purus sed, cursus velit. Proin nisi eros, congue et urna at, ullamcorper ornare risus. Nullam sed enim ac nulla laoreet placerat. Aliquam erat volutpat. Nullam in metus sed augue suscipit vehicula sed at leo. Praesent nec ex dictum, luctus erat in, mollis est. Sed eget urna lectus. Quisque sit amet erat et enim varius tempus non sed ligula. Nulla porttitor erat lacus, sed posuere mi viverra nec. Curabitur vulputate blandit nibh. Morbi tristique orci velit. Pellentesque egestas pulvinar ante. Sed sed ullamcorper lacus, non elementum tellus. Quisque eget imperdiet mi. Integer placerat, nulla vitae molestie auctor, nunc purus faucibus nibh, rutrum cursus arcu quam eget diam. Integer et congue turpis. Nunc placerat augue ante, in sagittis elit ornare iaculis. Curabitur tristique aliquet tellus, eget luctus elit pellentesque at. Phasellus varius commodo libero ut scelerisque. Integer euismod nisl sit amet erat laoreet, non interdum purus dapibus. Donec lobortis vel mauris eget dapibus. Maecenas non neque vehicula, egestas massa quis, varius ipsum. Pellentesque finibus libero sem, a interdum purus maximus id. Phasellus facilisis erat vitae ex varius dignissim. Mauris at congue lectus, eu dictum risus. Integer mattis malesuada nibh, eget viverra odio porta sed. Sed dapibus odio in varius condimentum. Nam egestas erat et convallis tincidunt. Sed volutpat lorem at molestie vulputate. Integer sit amet ex vel augue dictum faucibus et vitae quam. Quisque et tristique urna, sit amet condimentum mauris. Sed ac ornare sapien. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Morbi tincidunt lectus quis tellus efficitur, in ullamcorper dolor posuere. Phasellus sodales rhoncus ipsum, quis accumsan nibh pulvinar quis. Nulla vel diam sit amet nunc dapibus fermentum.".split(' ');
Tests:
lodash.uniq
_.uniq(lorem.concat(lorem))
Native Set
[...(new Set([...lorem, ...lorem]))]
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
lodash.uniq
Native Set
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
one year ago
)
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 YaBrowser/24.4.0.0 Safari/537.36
Browser/OS:
Yandex Browser 24 on Mac OS X 10.15.7
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
lodash.uniq
69741.7 Ops/sec
Native Set
70523.3 Ops/sec
Autogenerated LLM Summary
(model
llama3.2:3b
, generated one year ago):
I'll break down the provided benchmark and explain what's being tested, compared options, pros and cons of each approach, library usage, special JavaScript features or syntax, and other alternatives. **Benchmark Overview** The provided benchmark measures the performance difference between two approaches: 1. **Lodash `uniq`**: A utility function from the popular Lodash library that removes duplicates from an array. 2. **Native Set**: Using a built-in `Set` data structure in JavaScript to remove duplicates from an array. **Test Case Analysis** There are two individual test cases: **Test Case 1: Lodash `uniq`** * The benchmark definition is `_ _.uniq(lorem.concat(lorem))`. * This uses the Lodash library, which is a popular utility belt for functional programming in JavaScript. * The purpose of this function is to remove duplicates from an array while preserving the original order. **Test Case 2: Native Set** * The benchmark definition is `[...(new Set([...lorem, ...lorem]))]`. * This uses the built-in `Set` data structure in JavaScript to remove duplicates from an array. * The purpose of this function is to create a new set from an existing array and then convert it back to an array, removing any duplicate elements. **Comparison Options** The two options being compared are: 1. **Lodash `uniq`**: A pre-built utility function with its own implementation and optimizations. 2. **Native Set**: Using the built-in `Set` data structure in JavaScript, which is a more lightweight and native approach. **Pros and Cons of Each Approach** * **Lodash `uniq`**: + Pros: Well-tested and optimized implementation, handles edge cases like null or undefined values. + Cons: Adds an external dependency (the Lodash library), may be slower than the built-in `Set` approach due to function call overhead. * **Native Set**: + Pros: Fast and lightweight, uses native code for optimization, no external dependencies. + Cons: May have issues with edge cases like null or undefined values, requires understanding of set data structures. **Library Usage** The Lodash library is used in the benchmark definition to provide the `uniq` function. This library is a popular choice among JavaScript developers due to its comprehensive set of utility functions and optimizations. **Special JavaScript Features or Syntax** There are no special JavaScript features or syntax used in this benchmark. **Other Alternatives** If you're interested in exploring alternative approaches, here are some options: * **Using `Array.from()` and `Array.prototype.reduce()```**: This approach uses the `from()` method to create a new array from a set of elements and then applies a reduction function to remove duplicates. * **Using a custom implementation with `Map` and `Array.prototype.slice()`**: This approach uses a map data structure to keep track of unique elements and then uses `Array.prototype.slice()` to create a new array with only the unique elements. These alternatives may offer different trade-offs in terms of performance, code complexity, or memory usage.
Related benchmarks:
Reduce w/ Lowercase vs. Magic Regex
lodash startsWith vs native startsWith
lodash.uniq vs native Set
lodash some vs native array some
Comments
Confirm delete:
Do you really want to delete benchmark?