-
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] Windows/arm64: Regressions in System.Collections.IndexerSet<String> #98174
Comments
Looks like the likely change. #97921 |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsRun Information
Regressions in System.Collections.IndexerSet<String>
ReproGeneral Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md git clone https://github.com/dotnet/performance.git
py .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Collections.IndexerSet<String>*' PayloadsSystem.Collections.IndexerSet<String>.Array(Size: 512)ETL FilesHistogramJIT DisasmsDocsProfiling workflow for dotnet/runtime repository
|
@EgorBot -arm64 -perf -commit 2d49c2f vs b449152 --disasm // Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Extensions;
namespace System.Collections
{
[GenericTypeArguments(typeof(string))] // reference type
public class IndexerSet<T>
{
[Params(Utils.DefaultCollectionSize)]
public int Size;
private T[] _keys;
private T[] _array;
private List<T> _list;
private Dictionary<T, T> _dictionary;
private SortedList<T, T> _sortedList;
private SortedDictionary<T, T> _sortedDictionary;
private ConcurrentDictionary<T, T> _concurrentDictionary;
[GlobalSetup(Targets = new[] { nameof(Array), nameof(Span) })]
public void SetupArray() => _array = ValuesGenerator.ArrayOfUniqueValues<T>(Size);
[Benchmark]
public T[] Array()
{
var array = _array;
for (int i = 0; i < array.Length; i++)
array[i] = default;
return array;
}
}
} |
Looks fixed if I compare with Windows.11.Arm64.Surf.Perf today. |
Run Information
Regressions in System.Collections.IndexerSet<String>
Test Report
Repro
General Docs link: https://github.com/dotnet/performance/blob/main/docs/benchmarking-workflow-dotnet-runtime.md
Payloads
Baseline
Compare
System.Collections.IndexerSet<String>.Array(Size: 512)
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: