Open EgorBot opened 3 weeks ago
Arm64
BenchmarkDotNet v0.14.0, Ubuntu 24.04 LTS (Noble Numbat)
Arm64
Job-TDCDWJ : .NET 10.0.0 (42.42.42.42424), Arm64 RyuJIT AdvSIMD
Job-OGRUHE : .NET 10.0.0 (42.42.42.42424), Arm64 RyuJIT AdvSIMD
Method | Toolchain | Mean | Error | Ratio |
---|---|---|---|---|
Foreach | Main | 1,297.250 ns | 0.1176 ns | 1.00 |
Foreach | PR | 1,110.222 ns | 0.2542 ns | 0.86 |
Count | Main | 1.112 ns | 0.0002 ns | 1.00 |
Count | PR | 1.066 ns | 0.0002 ns | 0.96 |
Intel
BenchmarkDotNet v0.14.0, Ubuntu 24.04 LTS (Noble Numbat)
Intel Xeon Platinum 8488C, 1 CPU, 8 logical and 4 physical cores
Job-OEFINY : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Job-VDHZTA : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Method | Toolchain | Mean | Error | Ratio |
---|---|---|---|---|
Foreach | Main | 397.2479 ns | 2.3665 ns | 1.00 |
Foreach | PR | 442.7244 ns | 4.5621 ns | 1.11 |
Count | Main | 3.8438 ns | 0.0332 ns | 1.00 |
Count | PR | 0.5762 ns | 0.0139 ns | 0.15 |
Hmm, Foreach
is slower on intel. Let me dig in to that.
Processing https://github.com/dotnet/runtime/pull/109209#issuecomment-2440134776 command:
Command
-intel -arm64 ```cs using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using System.Runtime.CompilerServices; BenchmarkSwitcher.FromAssembly(typeof(Bench).Assembly).Run(args); public class Bench { string[] s_ro_str_array = new string[512]; [Benchmark] public int Foreach() { IEnumerable(EgorBot will reply in this issue)