-
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
GC.AllocateUninitializedArray has regressed on macOS #65198
Comments
Tagging subscribers to this area: @dotnet/area-system-runtime Issue Details
.NET 6:
.NET 7 Preview 1:
Repro: git clone https://github.com/dotnet/performance.git
python3 ./performance/scripts/benchmarks_ci.py -f net6.0 net7.0 --filter '*AllocateUninitializedArray' --bdn-arguments "--join true" System.Tests.Perf_GC.AllocateArray(length: 10000, pinned: False)
System.Tests.Perf_GC.AllocateUninitializedArray(length: 1000, pinned: False)
cc @VSadov
|
|
Tagging subscribers to this area: @dotnet/gc Issue Details
.NET 6:
.NET 7 Preview 1:
Repro: git clone https://github.com/dotnet/performance.git
python3 ./performance/scripts/benchmarks_ci.py -f net6.0 net7.0 --filter '*AllocateUninitializedArray' --bdn-arguments "--join true" System.Tests.Perf_GC.AllocateArray(length: 10000, pinned: False)
System.Tests.Perf_GC.AllocateUninitializedArray(length: 1000, pinned: False)
cc @VSadov
|
The issue still persists with preview2, some benchmarks are even up to 5 times slower. It's specific to macOS x64.
|
thanks for reporting! @MokoSan will be doing investigation on this. |
Was able to repro this on my Mac after upgrading to Monterey. The pattern I am observing is that we have regressed for cases where we are not pinning and have improved for cases where we are pinning. Will be investigating this further. As a note, this issue regressed before we enabled Regions and is seemingly an OS specific regression. .NET 6
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250.0000 ms MaxIterationCount=20
.NET 7
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250.0000 ms MaxIterationCount=20
|
Here are the results from the 6.0 vs 7.0-rc2 report, we will tag this as "Under investigation" in the report. System.Tests.Perf_GC.AllocateUninitializedArray(length: 10000, pinned: True)
System.Tests.Perf_GC.AllocateUninitializedArray(length: 10000, pinned: True)
|
Here are the results from the 7.0 vs 6.0 report confirming the regression. System.Tests.Perf_GC.AllocateUninitializedArray(length: 10000, pinned: True)
System.Tests.Perf_GC.AllocateUninitializedArray(length: 10000, pinned: True)
|
Closing in lieu of #73592 |
Reopening to test this thoroughly on MacOS. |
GC.AllocateUninitializedArray
benchmarks have regressed by 15% for "smaller size" (1000 elements) only on macOS (x64, I don't have arm64 data). Other Unixes are not affected and larger sizes (10000 elements) are not affected...NET 6:
.NET 7 Preview 1:
Repro:
git clone https://github.com/dotnet/performance.git python3 ./performance/scripts/benchmarks_ci.py -f net6.0 net7.0 --filter '*AllocateUninitializedArray' --bdn-arguments "--join true"
System.Tests.Perf_GC.AllocateArray(length: 10000, pinned: False)
System.Tests.Perf_GC.AllocateUninitializedArray(length: 1000, pinned: False)
cc @VSadov
The text was updated successfully, but these errors were encountered: