Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Grouping vs Foreach
(version: 0)
Comparing performance of:
GroupBy vs Foreach
Created:
6 years ago
by:
Guest
Jump to the latest result
HTML Preparation code:
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.15/lodash.min.js"></script> <script scr="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/locale/en-au.js"></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/moment.min.js'></script>
Script Preparation code:
var activities = [{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[{"ID":"fb0125f2-387f-42c2-b8b4-b50670d7329f","Name":"New Activity (1)","IsCreated":false,"Error":null,"IsDependentActivityOverdue":true,"IsDependentActivityStarted":false,"DependentActivityStatus":0,"PlanId":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","PlanName":"Petr Test Master Deployment Plan","SourceActivityId":"ab5db126-e7cb-4a0a-a18f-03a5b4a1d7e8","DependentActivityId":"3e2e8fc0-974e-4c17-a052-dbee2815a931","SortOrder":1,"DependencyType":0}],"AdditionalInformations":null,"ID":"ab5db126-e7cb-4a0a-a18f-03a5b4a1d7e8","FakeId":"ab5db126-e7cb-4a0a-a18f-03a5b4a1d7e8","Name":"New Activity (4)","SortOrder":3,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":"2019-08-10T07:03:00.0000000","EndDateTimePlanned":"2019-08-20T07:03:00.0000000","FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"3.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":true,"CommentsCount":null,"Dependencies":[{"ID":"42ff3c29-07d2-42f0-bfd8-3457b1296a0b","Name":"New Activity (2) Child Deployment Plan","IsCreated":false,"Error":null,"IsDependentActivityOverdue":false,"IsDependentActivityStarted":false,"DependentActivityStatus":0,"PlanId":"e4113fa7-1cb8-e911-9650-509a4ccb5cb7","PlanName":"Petr Test Child Deployment Plan","SourceActivityId":"91ed4357-3cc3-4759-8db2-22907ce075cf","DependentActivityId":"e84eaf3c-f5e3-47ef-9e71-1dc18a27f715","SortOrder":2,"DependencyType":3}],"AdditionalInformations":null,"ID":"91ed4357-3cc3-4759-8db2-22907ce075cf","FakeId":"91ed4357-3cc3-4759-8db2-22907ce075cf","Name":"New Activity (8)","SortOrder":7,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"7.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"20bc30f8-b6e6-424d-b83a-336f6b14888d","FakeId":"20bc30f8-b6e6-424d-b83a-336f6b14888d","Name":"New Activity (9)","SortOrder":8,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"8.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"b6907325-8822-4d41-bb54-45bd7a30c3c4","FakeId":"b6907325-8822-4d41-bb54-45bd7a30c3c4","Name":"New Activity (7)","SortOrder":6,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"6.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":true,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"61973791-6fdb-45b7-8403-4fe1eea9439c","FakeId":"61973791-6fdb-45b7-8403-4fe1eea9439c","Name":"New Activity (11)","SortOrder":9.5,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":"eecf668a-8161-4388-a679-0738a0aeef60","GroupName":"New Activity (10) Group","GroupSortOrder":"9.500000000000000000000000","GroupFillColor":"#FFFFFF","GroupBorderColor":"#FFFFFF","GroupFontColor":"#0099CC","PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"40482b2d-aa3c-4565-9c95-50744814b00b","FakeId":"40482b2d-aa3c-4565-9c95-50744814b00b","Name":"New Activity (6)","SortOrder":5,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"5.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"44f99359-0946-4de3-a6a7-53fccba2edaa","FakeId":"44f99359-0946-4de3-a6a7-53fccba2edaa","Name":"New Activity (10)","SortOrder":10.5,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"10.500000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"81d02adf-bae2-44aa-a9c1-63e13218dfc0","FakeId":"81d02adf-bae2-44aa-a9c1-63e13218dfc0","Name":"New Activity (0)","SortOrder":-0.5,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"-0.500000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":true,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[{"ID":"ecd1d462-7d1f-402d-bf22-81fb0549e7dd","Name":"New Activity (2)","IsCreated":false,"Error":null,"IsDependentActivityOverdue":true,"IsDependentActivityStarted":false,"DependentActivityStatus":0,"PlanId":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","PlanName":"Petr Test Master Deployment Plan","SourceActivityId":"6dbb9429-6925-460a-8b72-8046fb5afa12","DependentActivityId":"c14d98d8-1aad-48c5-b96a-ae6fda006203","SortOrder":2,"DependencyType":0}],"AdditionalInformations":null,"ID":"6dbb9429-6925-460a-8b72-8046fb5afa12","FakeId":"6dbb9429-6925-460a-8b72-8046fb5afa12","Name":"New Activity (3)","SortOrder":1.5,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":"2019-08-06T07:03:00.0000000","EndDateTimePlanned":"2019-08-09T07:03:00.0000000","FactStartDate":null,"FactEndDate":null,"GroupID":"81f4f307-f378-4641-921b-858d11a02855","GroupName":"New Activity (2) Group","GroupSortOrder":"1.000000000000000000000000","GroupFillColor":"#FFFFFF","GroupBorderColor":"#FFFFFF","GroupFontColor":"#0099CC","PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"88124e24-50e4-4157-ab17-8f3e31d661ec","FakeId":"88124e24-50e4-4157-ab17-8f3e31d661ec","Name":"New Activity (5)","SortOrder":10,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":null,"EndDateTimePlanned":null,"FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"10.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":true,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":true,"CommentsCount":null,"Dependencies":[{"ID":"69091608-9c9e-495b-9917-ec4098602f84","Name":"New Activity (1)","IsCreated":false,"Error":null,"IsDependentActivityOverdue":true,"IsDependentActivityStarted":false,"DependentActivityStatus":0,"PlanId":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","PlanName":"Petr Test Master Deployment Plan","SourceActivityId":"c14d98d8-1aad-48c5-b96a-ae6fda006203","DependentActivityId":"3e2e8fc0-974e-4c17-a052-dbee2815a931","SortOrder":1,"DependencyType":4}],"AdditionalInformations":null,"ID":"c14d98d8-1aad-48c5-b96a-ae6fda006203","FakeId":"c14d98d8-1aad-48c5-b96a-ae6fda006203","Name":"New Activity (2)","SortOrder":1,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":"2019-08-03T07:09:00.0000000","EndDateTimePlanned":"2019-08-05T07:09:00.0000000","FactStartDate":null,"FactEndDate":null,"GroupID":"81f4f307-f378-4641-921b-858d11a02855","GroupName":"New Activity (2) Group","GroupSortOrder":"1.000000000000000000000000","GroupFillColor":"#FFFFFF","GroupBorderColor":"#FFFFFF","GroupFontColor":"#0099CC","PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0},{"HasAvatar":false,"Responsible":null,"ResponsibleIsGroup":null,"ResponsibleUserID":null,"ResponsibleEmail":null,"Attachments":0,"IsIncludedInGroup":false,"StartedBy":null,"CompletedBy":null,"FailedBy":null,"IssuedBy":null,"DisableCompleteAction":false,"DisableStartAction":false,"CommentsCount":null,"Dependencies":[],"AdditionalInformations":null,"ID":"3e2e8fc0-974e-4c17-a052-dbee2815a931","FakeId":"3e2e8fc0-974e-4c17-a052-dbee2815a931","Name":"New Activity (1)","SortOrder":0,"PlanID":"a0c158d7-15b8-e911-9650-509a4ccb5cb7","ResponsibleID":null,"SystemIDs":[],"Description":"","IsMilestone":false,"IsAutomated":false,"AutomatedScripts":[],"IsOptional":false,"FailedDate":null,"IssuedDate":null,"StartDateTimePlanned":"2019-08-01T07:09:00.0000000","EndDateTimePlanned":"2019-08-02T14:09:00.0000000","FactStartDate":null,"FactEndDate":null,"GroupID":null,"GroupName":null,"GroupSortOrder":"0.000000000000000000000000","GroupFillColor":null,"GroupBorderColor":null,"GroupFontColor":null,"PreDefinedGroupTaskId":null,"PreDefinedGroupFillColor":null,"PreDefinedGroupBorderColor":null,"PreDefinedGroupFontColor":null,"Status":0,"UpdateToStatus":0,"ActualDateTimeCompleted":null,"RevisedStartTime":null,"PreviousTimezoneOffset":null,"IsDowntime":false,"DowntimeFrom":null,"DowntimeTo":null,"ActivitySetsIds":[],"AutomatedBuildStatus":0}];
Tests:
GroupBy
var ganttData = {tasks:[], links: []}; const mapProject = (id, text, startDate, endDate, parent) => { return { id, text, unscheduled: Boolean(startDate || endDate), duration: 0, type: 'project', open: true, start_date: startDate, end_date: endDate, parent } } const mapTask = (id, text, type, startDate, endDate, parent) => { const unscheduled = !Boolean(startDate && endDate); return { id, text, unscheduled, duration: !unscheduled ? moment(endDate).diff(startDate, 'hours') : 0, type, // open: true, start_date: startDate, end_date: endDate, parent } } const mapLink = (d) => { return { id: d.ID, source: d.DependentActivityId, target: d.SourceActivityId, type: d.DependencyType, } } _.chain(activities) .groupBy("GroupID") .map((groupedActivities, groupId) => { if (groupId !== 'null') { const earliestActivity = _.minBy(groupedActivities, a => a.StartDateTimePlanned); const earliestActivityStartDate = earliestActivity && earliestActivity.StartDateTimePlanned? new Date(earliestActivity.StartDateTimePlanned): undefined const latestActivity = _.maxBy(groupedActivities, a => a.EndDateTimePlanned); const latestActivityEndDate = latestActivity && latestActivity.EndDateTimePlanned? new Date(latestActivity.EndDateTimePlanned): undefined ganttData.tasks.push(mapProject(groupId, groupedActivities[0].GroupName, earliestActivityStartDate, latestActivityEndDate, undefined)); } const tasks = groupedActivities.map(a => mapTask(a.ID, a.Name, a.IsMilestone ? 'milestone' : 'task', a.StartDateTimePlanned? new Date(a.StartDateTimePlanned): undefined, a.EndDateTimePlanned? new Date(a.EndDateTimePlanned): undefined, groupId !== 'null'? groupId : undefined)) ganttData.tasks.push(...tasks); const links = _.flatMap(groupedActivities, i => i.Dependencies.map(mapLink)); ganttData.links.push(...links); }) .value(); console.log(ganttData)
Foreach
var ganttData = {tasks:[], links: []}; activities.reduce((tasks, activity) => { const start = activity.StartDateTimePlanned; const end = activity.EndDateTimePlanned; const task = { id: activity.ID, text: activity.Name, unscheduled: true, duration: 0, type: activity.IsMilestone ? 'milestone' : 'task', parent: activity.GroupID } let group; if (activity.GroupID && activity.GroupName) { group = tasks.find(g => g.id === activity.GroupID) if (!group) { group = { id: activity.GroupID, text: activity.GroupName, unscheduled: true, duration: 0, type: 'project', open: true } tasks.push(group) } } if (start && end) { const startDate = new Date(start); const endDate = new Date(end); task.start_date = startDate; task.duration = moment(endDate).diff(startDate, 'hours'); task.unscheduled = false; if (group) { group.unscheduled = false; if (group.start_date === undefined || (group.start_date instanceof Date && startDate < group.start_date)) { group.start_date = startDate; } if (group.end_date === undefined || (group.end_date instanceof Date && endDate > group.end_date)) { group.end_date = endDate; } } } tasks.push(task); if (activity.Dependencies) { ganttData.links = ganttData.links.concat(activity.Dependencies.map((d) => ({ id: d.ID, source: d.DependentActivityId, target: d.SourceActivityId, type: d.DependencyType }))) } return tasks }, ganttData.tasks); console.log(ganttData);
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
GroupBy
Foreach
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):
I'm ready to help! It looks like you have two benchmark results from different tests, "Foreach" and "GroupBy", which seem to be comparing the performance of JavaScript code. Can you please provide more context or information about what these benchmarks measure (e.g., task duration, memory usage, CPU cycles) and what kind of data is being processed? Also, are there any specific questions or observations you'd like me to help with regarding these results?
Related benchmarks:
Grouping vs reduced grouping vs foreach 430 activities with 10 groups
Grouping vs reduced grouping vs foreach 72 activities with 4 groups
Lodash vs. Set Intersection vs Array intersection 3
groupBy vs map + uniq
Comments
Confirm delete:
Do you really want to delete benchmark?