Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Lodash isEqual and then group vs only grouping messages
(version: 2)
Tests
Comparing performance of:
Only isEqual vs Only grouping vs Both
Created:
8 years ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>
Script Preparation code:
window.oldProps = [ { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, ]; window.newProps = [ { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friendy" // <- change }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, { createdAt: "Wed May 02 2018 18:06:52 GMT+0200 (CEST)", isOwn: true, message: "Hello my friend." }, ]; var groupMessages = (msgs) => { return _.map( _.groupBy(_.sortBy(msgs, 'createdAt'), (message) => message.createdAt), (messages, date) => ({ date, messages }), ); }
Tests:
Only isEqual
_.isEqual(window.oldProps, window.newProps)
Only grouping
groupMessages(window.newProps)
Both
if (!_.isEqual(window.oldProps, window.newProps)) { groupMessages(window.newProps); }
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (3)
Previous results
Fork
Test case name
Result
Only isEqual
Only grouping
Both
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):
It looks like we have a set of benchmarking results for some JavaScript code. I'll help you extract the relevant information. **Benchmark Results:** We have 3 test cases with their respective benchmark definitions and names: 1. `_.isEqual(window.oldProps, window.newProps)` 2. `groupMessages(window.newProps)` 3. `if (!_.isEqual(window.oldProps, window.newProps)) { groupMessages(window.newProps); }` **Test Name "Only grouping"** For this test case, the latest benchmark result is: * **RawUAString**: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36` * **Browser**: `Chrome 68` * **DevicePlatform**: `Desktop` * **OperatingSystem**: `Mac OS X 10.13.5` * **ExecutionsPerSecond**: `244505.984375` **Test Name "Only isEqual"** For this test case, the latest benchmark result is: * **RawUAString**: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36` * **Browser**: `Chrome 68` * **DevicePlatform**: `Desktop` * **OperatingSystem**: `Mac OS X 10.13.5` * **ExecutionsPerSecond**: `59551.0234375` **Test Name "Both"** For this test case, the latest benchmark result is: * **RawUAString**: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36` * **Browser**: `Chrome 68` * **DevicePlatform**: `Desktop` * **OperatingSystem**: `Mac OS X 10.13.5` * **ExecutionsPerSecond**: `48980.94921875` Let me know if you'd like to analyze the code or discuss any specific aspects of these results!
Related benchmarks:
Lodash.isEqual vs Array.join('') Equality Comparison for Shallow Array of Strings.
isEqual vs map + join w/obj
Lodash.isEqual vs Array.join() Equality Comparison for Shallow Array of Strings.
Lodash.isEqual vs JSON.stringify Equality Comparison for complex objects
Lodash.isEqual vs Lodash.isEqualWith Equality Comparison for Shallow Array of Strings.
Comments
Confirm delete:
Do you really want to delete benchmark?