-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Perf] Regressions in System.Linq.Tests.Perf_Enumerable #50006
Comments
I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label. |
#48634 looks like the culprit |
Tagging subscribers to this area: @eiriktsarpalis Issue DetailsRun Information
Regressions in System.Linq.Tests.Perf_Enumerable
Reprogit clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f netcoreapp5.0 --filter 'System.Linq.Tests.Perf_Enumerable*' . PayloadsHistogramSystem.Linq.Tests.Perf_Enumerable.TakeLastHalf(input: IEnumerable)
DocsProfiling workflow for dotnet/runtime repository
|
This is expected, e52568d
f7308f0
|
Compared to 5.0 there is still a regression: https://pvscmdupload.blob.core.windows.net/reports/allTestHistory%2frefs%2fheads%2fmain_x64_Windows%2010.0.18362%2fSystem.Linq.Tests.Perf_Enumerable.TakeLastHalf(input%3a%20List).html I am reopening, @eiriktsarpalis PTAL |
Yes, this is in line with the trade-offs in that particular change. Notice in #50006 (comment) that for I would recommend closing this as by-design. |
I just realized you referred to |
@eiriktsarpalis sorry I forgot to provide the repro: git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net5.0 net6.0 --filter 'System.Linq.Tests.Perf_Enumerable.TakeLastHalf' |
Looking at the graph, the initial regression in September definitely correlates with this change: #42506. This was reverting an optimization since it was behaving incorrectly in the context of source mutations. The more recent changes improve performance (as expected), but it is unlikely we can recover the performance of the (incorrect) .NET 5 implementation. Again, this regression is to be expected, closing the issue. cc @stephentoub |
Run Information
Regressions in System.Linq.Tests.Perf_Enumerable
Historical Data in Reporting System
Repro
.
Payloads
Baseline
Compare
Histogram
System.Linq.Tests.Perf_Enumerable.TakeLastHalf(input: IEnumerable)
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: