dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.33k stars 4.74k forks source link

[wasm] NET8 previews performance tracking #88178

Open radekdoulik opened 1 year ago

radekdoulik commented 1 year ago

Issues to look at (most important at top):

AOT related issues https://github.com/dotnet/perf-autofiling-issues/issues/14019 223 regressions, probably AOT and generics https://github.com/dotnet/perf-autofiling-issues/issues/13755 23 regressions, might show opportunities for SIMD improvements https://github.com/dotnet/perf-autofiling-issues/issues/19230 3 regressions, utf16 widening code change. It now uses Vector128.Widen instead of 2 calls to WidenLower and WidenUpper. This should result in theory in the same code as Widen is calling these too and returning pair. There might be something like additional store in the emitted code. To chase further, try to compare before and after emitted code of the WidenAsciiToUtf16 method.

NET8 Preview1-Preview6 comparison - choose previews branches, NET8 p1 and p6 in our case, and one of wasm RunConfig's https://msit.powerbi.com/groups/me/apps/54e0e83f-07bc-45bf-87b7-a7677ff3af2a/reports/b7f22b49-2eb8-4608-933a-13305cc8fab6/ReportSection587f36b937cea0cbe025?experience=power-bi

interpreter obrazek only few regressions, overall the performance is improved

AOT obrazek there are 200+ regressions from https://github.com/dotnet/perf-autofiling-issues/issues/14019

obrazek still mostly improvements in AOT as well

Blazor size regression obrazek

ghost commented 1 year ago

Tagging subscribers to this area: @directhex See info in area-owners.md if you want to be subscribed.

Issue Details
Issues to look at (most important at top): AOT related issues https://github.com/dotnet/perf-autofiling-issues/issues/14019 223 regressions, probably AOT and generics https://github.com/dotnet/perf-autofiling-issues/issues/13755 23 regressions, might show opportunities for SIMD improvements https://github.com/dotnet/perf-autofiling-issues/issues/19230 3 regressions, utf16 widening code change NET8 Preview1-Preview6 comparison - choose previews branches, NET8 p1 and p6 in our case, and one of wasm RunConfig's https://msit.powerbi.com/groups/me/apps/54e0e83f-07bc-45bf-87b7-a7677ff3af2a/reports/b7f22b49-2eb8-4608-933a-13305cc8fab6/ReportSection587f36b937cea0cbe025?experience=power-bi interpreter ![obrazek](https://github.com/dotnet/runtime/assets/4147484/a713cc29-ba5e-45af-8b39-9444d5b51eb6) only few regressions, overall the performance is improved AOT ![obrazek](https://github.com/dotnet/runtime/assets/4147484/402d1248-987a-4fc9-92b0-f0ab1aaf7279) there are 200+ regressions from https://github.com/dotnet/perf-autofiling-issues/issues/14019 ![obrazek](https://github.com/dotnet/runtime/assets/4147484/1143a282-680a-4e8e-ba20-14af95873050) still mostly improvements in AOT as well Blazor size regression ![obrazek](https://github.com/dotnet/runtime/assets/4147484/2cb6b1c6-2df9-4249-ad42-695fc6a59d94)
Author: radekdoulik
Assignees: radekdoulik
Labels: `area-Infrastructure-mono`
Milestone: 8.0.0
xtqqczze commented 5 months ago

dotnet/perf-autofiling-issues#19230 3 regressions, utf16 widening code change. It now uses Vector128.Widen instead of 2 calls to WidenLower and WidenUpper. This should result in theory in the same code as Widen is calling these too and returning pair. There might be something like additional store in the emitted code. To chase further, try to compare before and after emitted code of the WidenAsciiToUtf16 method.

https://github.com/dotnet/runtime/pull/87737