-
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
[Perf] Linux/arm64: 7 Regressions on 2/23/2024 10:12:07 PM #99121
Comments
Tagging subscribers to this area: @dotnet/area-system-memory Issue DetailsRun Information
Regressions in System.Memory.Span<Char>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span<Char>*' PayloadsSystem.Memory.Span<Char>.SequenceEqual(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Memory.Span<Char>.EndsWith(Size: 4)ETL FilesHistogramJIT DisasmsSystem.Memory.Span<Char>.EndsWith(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository Run Information
Regressions in System.Memory.Span<Int32>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Memory.Span<Int32>*' PayloadsSystem.Memory.Span<Int32>.EndsWith(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Memory.Span<Int32>.StartsWith(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Memory.Span<Int32>.SequenceEqual(Size: 512)ETL FilesHistogramJIT DisasmsSystem.Memory.Span<Int32>.EndsWith(Size: 4)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository
|
Looks to be #98700 |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
@EgorBot -arm64 -commit 973ceee vs previous --disasm --envvars "DOTNET_JitDisasm:SequenceEqual" using BenchmarkDotNet.Attributes;
[GenericTypeArguments(typeof(int))]
public class Span<T>
where T : struct, IComparable<T>, IEquatable<T>
{
[Params(512)]
public int Size;
private T[] _array, _same, _emptyWithSingleValue;
private T[] _fourValues, _fiveValues;
private T _notDefaultValue;
[GlobalSetup]
public void Setup()
{
T[] array = new T[Size * 2];
_array = array.Take(Size).ToArray();
_same = _array.ToArray();
}
[Benchmark]
public bool SequenceEqual() => new System.Span<T>(_array)
.SequenceEqual(new ReadOnlySpan<T>(_same));
} |
Benchmark results on Arm64
|
It turns out to be tail-call + special intrinsic problem, we have an issue for it somewhere, I'll take a look in 10.0 |
Run Information
Regressions in System.Memory.Span<Char>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Memory.Span<Char>.SequenceEqual(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Char>.EndsWith(Size: 4)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Char>.EndsWith(Size: 512)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
Run Information
Regressions in System.Memory.Span<Int32>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Memory.Span<Int32>.EndsWith(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Int32>.StartsWith(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Int32>.SequenceEqual(Size: 512)
ETL Files
Histogram
JIT Disasms
System.Memory.Span<Int32>.EndsWith(Size: 4)
ETL Files
Histogram
JIT Disasms
Docs
Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository
The text was updated successfully, but these errors were encountered: