-
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 Preview 1 Microbenchmarks Performance Study Report #65200
Comments
Tagging subscribers to this area: @dotnet/area-meta Issue DetailsDataThis time we have covered following configs:
ARM64 results are not 100% complete because we have hit two ARM bugs: #64657 (AV) and #64980 (hang).
Most of the benchmarks were run on bare-metal machines, some were executed via WSL. This would not be possible without the help from: @AndyAyersMS @carlossanlop @danmoseley @jeffhandley and @janvorli who contributed their results and time. The full report generated by the tool is available here. The full report contains also improvements, so if you read it from the end you can see the biggest perf improvements. There are plenty of them! Again, the full historical data turned out to be extremely useful. For details about methodology please read #41871. RegressionsBy design
Investigation in progress
Fixed in the meantime
Noise, flaky or multimodalThe following benchmarks showed up in the report generated by the tool, but were not actual regressions:
Big thanks to everyone involved!
|
You can read the full report from the end ;) |
Yeah, I removed the comment because I've realized that 🙂. I think we've made a lot of progress for ARM so I'd be curious to see that, I hope we'll be able to do it for P2 |
Great - thanks for doing this @adamsitnik . @kunalspathak @DrewScoggins and other perf v-team folks -- I assume we'll look into why some of these were apparently missed by the regular system? |
Data
This time we have covered following configs:
ARM64 results are not 100% complete because we have hit two ARM bugs: #64657 (AV) and #64980 (hang).
Most of the benchmarks were run on bare-metal machines, some were executed via WSL.
This would not be possible without the help from: @AndyAyersMS @carlossanlop @danmoseley @jeffhandley and @janvorli who contributed their results and time.
The full report generated by the tool is available here. The full report contains also improvements, so if you read it from the end you can see the biggest perf improvements. There are plenty of them!
Again, the full historical data turned out to be extremely useful. For details about methodology please read #41871.
Regressions
By design
System.IO.Tests.StringReaderReadLineTests.ReadLine(LineLengthRange: [ 0, 0])
,System.IO.Tests.StringReaderReadLineTests.ReadLine(LineLengthRange: [ 1, 1])
,System.IO.Tests.StringReaderReadLineTests.ReadLineAsync(LineLengthRange: [ 1, 1])
:System.Numerics.Tests.Perf_BigInteger.Subtract(arguments: 65536,65536 bits)
:System.Numerics.Tests.Perf_VectorConvert.Convert_double_long
:System.Text.RegularExpressions*
regressions: System.Text.RegularExpressions performance regressions #65187Investigation in progress
System.Numerics.Tests.Perf_Matrix4x4.NegationOperatorBenchmark
,System.Collections.Sort<BigStruct>.Array_Comparison(Size: 512)
,System.Collections.Sort<BigStruct>.Array_ComparerClass(Size: 512)
,System.Collections.Sort<BigStruct>.LinqOrderByExtension(Size: 512)
,System.Collections.Sort<BigStruct>.Array_ComparerStruct(Size: 512)
System.Collections.IterateForEach<String>.SortedSet
System.Numerics.Tests.Perf_Matrix4x4.MultiplyByScalarOperatorBenchmark
,System.Numerics.Tests.Perf_Matrix4x4.Transpose
,System.Numerics.Tests.Perf_Matrix4x4.NegateBenchmark
,System.Numerics.Tests.Perf_Matrix4x4.MultiplyByScalarBenchmark
PerfLabTests.GetMember.GetMethod*
,PerfLabTests.GetMember.GetField
System.Collections.TryGetValueFalse<Int32, Int32>.Dictionary(Size: 512)
System.Tests.Perf_Version.Parse2
System.Tests.Perf_GC<Char>.AllocateUninitializedArray(length: 10000, pinned: False)
Fixed in the meantime
System.Text.Json.Tests.Perf_Ctor.Ctor(Formatted: False, SkipValidation: False)
System.Text.Json.Tests.Perf_Base64.WriteByteArrayAsBase64_NoEscaping(NumberOfBytes: 100)
Noise, flaky or multimodal
The following benchmarks showed up in the report generated by the tool, but were not actual regressions:
System.Threading.Tests.Perf_Interlocked.Decrement_long
,System.Threading.Tests.Perf_Interlocked.Increment_long
on x86: CompareExchange_long benchmark sometimes reports very long execution time on x86 performance#1497 (comment)System.Diagnostics.Perf_Process.GetProcessesByName
I was unable to reproduce it despite my machine reported it previouslySystem.Memory.Span<Char>.Fill(Size: 512)
- memory alignmentPerfLabTests.CastingPerf.CheckArrayIsInterfaceNo
- very noisyBig thanks to everyone involved!
The text was updated successfully, but these errors were encountered: