diff --git a/Ical.Net.Benchmarks/ApplicationWorkflows.cs b/Ical.Net.Benchmarks/ApplicationWorkflows.cs index 669a211c..92aa8b29 100644 --- a/Ical.Net.Benchmarks/ApplicationWorkflows.cs +++ b/Ical.Net.Benchmarks/ApplicationWorkflows.cs @@ -38,7 +38,7 @@ public List SingleThreaded() return _manyCalendars .SelectMany(Calendar.Load) .SelectMany(c => c.Events) - .SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd)) + .SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd)) .ToList(); } @@ -49,7 +49,7 @@ public List ParallelUponDeserialize() .AsParallel() .SelectMany(Calendar.Load) .SelectMany(c => c.Events) - .SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd)) + .SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd)) .ToList(); } @@ -60,7 +60,7 @@ public List ParallelUponGetOccurrences() .SelectMany(Calendar.Load) .SelectMany(c => c.Events) .AsParallel() - .SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd)) + .SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd)) .ToList(); } @@ -72,7 +72,7 @@ public List ParallelDeserializeSequentialGatherEventsParallelGetOccu .SelectMany(Calendar.Load) .AsSequential() .SelectMany(c => c.Events) - .SelectMany(e => e.GetOccurrences(_searchStart, _searchEnd)) + .SelectMany(e => e.GetOccurrences(_searchStart).TakeWhile(p => p.Period.StartTime < _searchEnd)) .ToList(); } } diff --git a/Ical.Net.Benchmarks/OccurencePerfTests.cs b/Ical.Net.Benchmarks/OccurencePerfTests.cs index be9f043e..8a49f663 100644 --- a/Ical.Net.Benchmarks/OccurencePerfTests.cs +++ b/Ical.Net.Benchmarks/OccurencePerfTests.cs @@ -35,7 +35,7 @@ public void MultipleEventsWithUntilOccurrencesSearchingByWholeCalendar() { var searchStart = _calendarFourEvents.Events.First().DtStart.AddYears(-1); var searchEnd = _calendarFourEvents.Events.Last().DtStart.AddYears(1); - _ = _calendarFourEvents.GetOccurrences(searchStart, searchEnd); + _ = _calendarFourEvents.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd); } [Benchmark] @@ -44,7 +44,7 @@ public void MultipleEventsWithUntilOccurrences() var searchStart = _calendarFourEvents.Events.First().DtStart.AddYears(-1); var searchEnd = _calendarFourEvents.Events.Last().DtStart.AddYears(1); _ = _calendarFourEvents.Events - .SelectMany(e => e.GetOccurrences(searchStart, searchEnd)) + .SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd)) .ToList(); } @@ -55,7 +55,7 @@ public void MultipleEventsWithUntilOccurrencesEventsAsParallel() var searchEnd = _calendarFourEvents.Events.Last().DtStart.AddYears(1).AddDays(10); _ = _calendarFourEvents.Events .AsParallel() - .SelectMany(e => e.GetOccurrences(searchStart, searchEnd)) + .SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd)) .ToList(); } @@ -113,7 +113,7 @@ public void MultipleEventsWithCountOccurrencesSearchingByWholeCalendar() var calendar = GetFourCalendarEventsWithCountRule(); var searchStart = calendar.Events.First().DtStart.AddYears(-1); var searchEnd = calendar.Events.Last().DtStart.AddYears(1); - _ = calendar.GetOccurrences(searchStart, searchEnd); + _ = calendar.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd); } [Benchmark] @@ -123,7 +123,7 @@ public void MultipleEventsWithCountOccurrences() var searchStart = calendar.Events.First().DtStart.AddYears(-1); var searchEnd = calendar.Events.Last().DtStart.AddYears(1); _ = calendar.Events - .SelectMany(e => e.GetOccurrences(searchStart, searchEnd)) + .SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd)) .ToList(); } @@ -135,7 +135,7 @@ public void MultipleEventsWithCountOccurrencesEventsAsParallel() var searchEnd = calendar.Events.Last().DtStart.AddYears(1).AddDays(10); _ = calendar.Events .AsParallel() - .SelectMany(e => e.GetOccurrences(searchStart, searchEnd)) + .SelectMany(e => e.GetOccurrences(searchStart).TakeWhile(p => p.Period.StartTime < searchEnd)) .ToList(); } diff --git a/Ical.Net.Benchmarks/ThroughputTests.cs b/Ical.Net.Benchmarks/ThroughputTests.cs index 9bfd9f08..4f11835b 100644 --- a/Ical.Net.Benchmarks/ThroughputTests.cs +++ b/Ical.Net.Benchmarks/ThroughputTests.cs @@ -71,7 +71,7 @@ rsion 08.00.0681.000"">\n\n\n\n