-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
.NET 7.0 RC1 Microbenchmarks Performance Study Report #76320
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. |
Tagging subscribers to this area: @dotnet/area-meta Issue DetailsDataThis time we have covered following configurations comparing .NET 7.0 Preview RC1 vs. .NET 7.0 Preview 7:
Most of the benchmarks were run on bare-metal machines, some were executed via WSL. This would not be possible without the help from: @adamsitnik, @AndyAyersMS, @brianrob, @dakersnar, @jkotas, @kunalspathak who contributed their results and time. An addtional thank you to @dakersnar @mrsharm and @jozkee for shadowing the creation of this report and helping with the vetting of the results! The full report generated by the tool is available here. You will have to click "Raw" to see the entire file. The report is sorted from most regressed to most improved, so scroll to the bottom in the full report to see improvements. There are plenty of them! Again, the full historical data turned out to be extremely useful. For details about methodology please read #41871. Preview 7 report can be found here. Notable Improvements
Regressions
By Design
Already Solved
Noise, Flaky or MultimodalA lot of benchmarks showed up in the report generated by the tool, but were not actual regressions, they mostly are the same as in the previous report Some regressions looked real but turned out to be stale PGO related and fixed with PGO updates, e.g. #72866 StatisticsTotal: 52498 Statistics per Architecture
Statistics per Operating System
Statistics per Namespace
Big thanks to everyone involved!
|
Data
This time we have covered following configurations comparing .NET 7.0 Preview RC1 vs. .NET 7.0 Preview 7:
Most of the benchmarks were run on bare-metal machines, some were executed via WSL.
This would not be possible without the help from: @adamsitnik, @AndyAyersMS, @brianrob, @dakersnar, @jkotas, @kunalspathak who contributed their results and time. An addtional thank you to @dakersnar @mrsharm and @jozkee for shadowing the creation of this report and helping with the vetting of the results!
The full report generated by the tool is available here. You will have to click "Raw" to see the entire file. The report is sorted from most regressed to most improved, so scroll to the bottom in the full report to see improvements. There are plenty of them!
Again, the full historical data turned out to be extremely useful. For details about methodology please read #41871. Preview 7 report can be found here.
Notable Improvements
System.Memory.Span<Char>.LastIndexOfAnyValues(Size: 512)
,System.Collections.ContainsFalse<Int32>.*
,System.Tests.Perf_Array.IndexOfShort
,System.Tests.Perf_String.Replace_Char
and other benchmarksSystem.Perf_Convert.ToBase64CharArray(binaryDataSize: 1024, formattingOptions: None)
System.Tests.Perf_Environment.GetLogicalDrives
System.Text.Json.Serialization.Tests.ReadJson<ArrayList>.DeserializeFromUtf8Bytes
System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock.Count(Pattern: "/w+/s+Holmes/s+/w+", Options: NonBacktracking)
System.Reflection.Attributes.GetCustomAttributes*
Regressions
A lot of regressions such as
System.Tests.Perf_Enum.GetName
from "More precise writebarriers for Regions"System.Text.RegularExpressions.Tests.Perf_Regex_Industry_RustLang_Sherlock.Count()
,System.Globalization.Tests.StringSearch.IndexOf_Word_NotFound(Options: (en-US, Ordinal, False))
System.Text.Json.Tests.Utf8JsonReaderCommentsTests
on arm64*.CastingPerf.*
benchmarksSystem.IO.Compression.Gzip
By Design
Various improvements and regressions for
System.IO.Compression.Brotli.*(level:Optimal, *)
CompressionLevel.Optimal
was changed in Fix CompressionLevel.Optimal for Brotli #72266Various regressions in XmlSerializer, e.g.
MicroBenchmarks.Serializers.Xml_ToStream<MyEventsListerViewModel>.XmlSerializer_
System.Collections.Concurrent.IsEmpty<String>.Dictionary(Size: 512)
System.IO.Tests.StreamReaderReadToEndTests.ReadToEndAsync
and other GC-intensive benchmarksAlready Solved
String.Replace
System.Numerics.Tests.Perf_BigInteger.Parse
Noise, Flaky or Multimodal
A lot of benchmarks showed up in the report generated by the tool, but were not actual regressions, they mostly are the same as in the previous report
Some regressions looked real but turned out to be stale PGO related and fixed with PGO updates, e.g. #72866
Statistics
Total: 52498
Same: 72.28 %
Slower: 10.49 %
Faster: 8.19 %
Noise: 8.97 %
Unknown: 0.07 %
Statistics per Architecture
Statistics per Operating System
Statistics per Namespace
Big thanks to everyone involved!
The text was updated successfully, but these errors were encountered: