[perf] Overview of Mono AOT x64 microbenchmarks from Preview 5 to Preview 7 #89238
Labels
area-Codegen-meta-mono
tenet-performance
Performance related issue
tracking
This issue is tracking the completion of other related issues.
Milestone
Description
This report provides an overview of the major performance improvements and regressions Mono AOT from Preview 5 to Preview 7. The purpose of this analysis is to identify any performance improvements and regressions between the two snapshots and mitigate the impact within the .NET 8 release. The regression in the performance of occurred on May 11th, 2023. To evaluate the extent of this regression, we will compare the Preview 4 snapshot from May 2nd, 2023, with the Preview 7 snapshot from July 19th, 2023.
The configuration used for the benchmarks is Mono AOT with LLVM on x64 ubuntu 18.04.
Regressions
A total of 156 microbenchmarks regressed more than 5% during the between May 2nd and July 19th, 2023. Some of them may be noise in measurements, so the analysis should be taken dubiously and readers are encouraged to examine benchmark reports for thorough analysis.
Here is a breakdown of the regressions grouped by libraries.
System.Text.**
Share UTF8 converters between coreclr and mono in #85558 regressed encoding microbenchmarks reported in #89242.
System.Tests.Perf.** and System.Perf.**
Changes in IUtf8SpanParsable on the primitive numeric types in #86875 regressed
.Parse
microbenchmarks reported in #89243.System.Memory.Span.** and System.Memory.ReadOnly.**
There are several changes in #88101, #86655, and #85819 that introduced extra code and may have affected performance of microbenchmarks reported in #89247 and
#89250.
System.IO.**
StreamReader and Path microbenchmarks have regressed in #89249.
System.Collections.** and System.Buffers.**
BitArray and IterateFor microbenchmarks have regressed in #89251.
Microsoft.Extensions**
There are recent changes for debugger support #88960 or #88082, but it is unlikely they have caused the regressions reported in #89252.
Improvements
A total of 198 microbenchmarks improved more than 5% during the between May 2nd and July 19th, 2023.
Intrinsified Vector128 API's on Amd64 in #86272 improved about 100 microbenchmarks. Significantly improved performance are noticed in System.Threading and Exceptions.Handling microbenchmarks. Faster optimized creation of FrozenDirectory in #88093 improved a couple of microbemchmarks more than 50%. There are a number of microbenchmarks that have improved for up to 20%.
The text was updated successfully, but these errors were encountered: