EgorBot / runtime-utils

MIT License
0 stars 1 forks source link

win tests #172

Closed EgorBo closed 4 days ago

EgorBo commented 5 days ago

@EgorBot -windows_aws_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100000; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -windows_aws_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_aws_sapphirelake

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2762)
Intel Xeon Platinum 8488C, 1 CPU, 16 logical and 8 physical cores
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0089 μs
Method Mean Error
Test 2.741 μs 0.0107 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -windows_aws_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_aws_sapphirelake

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2762)
Intel Xeon Platinum 8488C, 1 CPU, 16 logical and 8 physical cores
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0198 μs
Method Mean Error
Test 2.790 μs 0.0212 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -windows_aws_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_aws_sapphirelake

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2762)
Intel Xeon Platinum 8488C, 1 CPU, 16 logical and 8 physical cores
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0876 μs
Method Mean Error
Test 2.152 μs 0.0424 μs

BDN_Artifacts.zip

Ultra Profiler


cc @EgorBo (agent_logs.txt)

EgorBot commented 5 days ago

@EgorBot -windows_intel -linux_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -windows_intel -linux_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on linux_azure_icelake

BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 4 logical and 2 physical cores
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0246 μs
Method Mean Error
Test 2.252 μs 0.0263 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBot commented 5 days ago

Benchmark results on windows_aws_sapphirelake

BenchmarkDotNet v0.14.0, Windows 10 (10.0.20348.2762)
Intel Xeon Platinum 8488C, 1 CPU, 16 logical and 8 physical cores
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0688 μs
Method Mean Error
Test 2.121 μs 0.0419 μs

BDN_Artifacts.zip

Profiler (powered by ultra):

Uploaded to profiler.firefox.com.
NOTE: only the first [Benchmark] is profiled currently.


cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -windows_intel -profiler pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -windows_intel -profiler pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -windows_intel -profiler pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -windows_azure_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

❌ Failed on AzureCobalt100: Job failed, see logs.

cc @EgorBo (logs)

EgorBo commented 5 days ago

@EgorBot -win_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -win_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -win_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_azure_cobalt100

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314)
azure_cobalt100
DefaultJob : .NET 9.0.0 (9.0.24.52809), Arm64 RyuJIT AdvSIMD
StdDev=0.0520 μs
Method Mean Error
Test 3.179 μs 0.0586 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -win_cobalt100 -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_azure_cobalt100

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314)
azure_cobalt100
DefaultJob : .NET 9.0.0 (9.0.24.52809), Arm64 RyuJIT AdvSIMD
StdDev=0.0671 μs
Method Mean Error
Test 3.176 μs 0.0604 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -win_cobalt100 -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -win_intel

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0338 μs
Method Mean Error
Test 2.941 μs 0.0361 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -win_intel -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 5 days ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.1031 μs
Method Mean Error
Test 2.551 μs 0.0510 μs

BDN_Artifacts.zip

Profile (powered by ultra profiler):

Uploaded to profiler.firefox.com.
NOTE: only the first [Benchmark] is profiled currently.


cc @EgorBo (agent_logs.txt)

EgorBo commented 5 days ago

@EgorBot -win_cobalt100 -profiler -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 5 days ago

@EgorBot -win_intel -profiler -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 4 days ago

❌ Failed on AzureCascadeLake: Job failed, see logs.

cc @EgorBo (logs)

EgorBo commented 4 days ago

@EgorBot -win_intel -lin_intel -profiler -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 4 days ago

@EgorBot -win_intel -linux_intel -profiler -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 4 days ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
  Job-LRDKHN : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
  Job-RGQUYI : .NET 9.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
RatioSD=0.02
Method Job Toolchain Mean Error Ratio
Test Job-LRDKHN \core_root_base\corerun.exe 2.221 μs 0.0337 μs 1.00
Test Job-RGQUYI \core_root_diff\corerun.exe 2.158 μs 0.0426 μs 0.97

BDN_Artifacts.zip

Profile (powered by ultra profiler):

Uploaded to profiler.firefox.com.
Uploaded to profiler.firefox.com.
NOTE: only the first [Benchmark] is profiled currently.


cc @EgorBo (agent_logs.txt)

EgorBo commented 4 days ago

@EgorBot -win_intel -linux_intel -profiler -pr 106525

using System.Text.Json;
using BenchmarkDotNet.Attributes;

public class Perf_Basic
{
    static readonly Employee[] Data = Enumerable.Range(1, 4096)
        .Select(i => new Employee("John", "Manager", 30, 185.5, new DateTime(1990, 10, 10),
            new Employee("Джон", "Разработчик", 30 + i, 185.5, new DateTime(1990, 10, 10), null))).ToArray();

    [Benchmark]
    public Employee[]? JsonRoundtrip()
    {
        var str = JsonSerializer.Serialize(Data);
        return JsonSerializer.Deserialize<Employee[]>(str);
    }
}

public record Employee(string name, string title, int age, double height, DateTime applyDate, Employee? manager);
EgorBo commented 4 days ago

@EgorBot -win_intel -linux_intel -profiler -pr 106525

using System.Text.Json;
using BenchmarkDotNet.Attributes;

public class Perf_Basic
{
    static readonly Employee[] Data = Enumerable.Range(1, 4096)
        .Select(i => new Employee("John", "Manager", 30, 185.5, new DateTime(1990, 10, 10),
            new Employee("Джон", "Разработчик", 30 + i, 185.5, new DateTime(1990, 10, 10), null))).ToArray();

    [Benchmark]
    public Employee[]? JsonRoundtrip()
    {
        var str = JsonSerializer.Serialize(Data);
        return JsonSerializer.Deserialize<Employee[]>(str);
    }
}

public record Employee(string name, string title, int age, double height, DateTime applyDate, Employee? manager);
EgorBo commented 4 days ago

@EgorBot -win_arm64 -pr 106525

using System.Text.Json;
using BenchmarkDotNet.Attributes;

public class Perf_Basic
{
    static readonly Employee[] Data = Enumerable.Range(1, 4096)
        .Select(i => new Employee("John", "Manager", 30, 185.5, new DateTime(1990, 10, 10),
            new Employee("Джон", "Разработчик", 30 + i, 185.5, new DateTime(1990, 10, 10), null))).ToArray();

    [Benchmark]
    public Employee[]? JsonRoundtrip()
    {
        var str = JsonSerializer.Serialize(Data);
        return JsonSerializer.Deserialize<Employee[]>(str);
    }
}

public record Employee(string name, string title, int age, double height, DateTime applyDate, Employee? manager);
EgorBot commented 4 days ago

@EgorBot -help

EgorBo commented 4 days ago

@EgorBot -help

EgorBot commented 4 days ago

EgorBot manual

Usage: @EgorBot [-%targets%] [other EgorBot args] [raw args for BDN] `C# snippet surrounded with triple ticks`
-%target%:       Example: "-arm" or "-intel -arm" or "-windows_x64 -linux_aws_genoa"

                 NOTE: target can be prefixed with the OS:
                  -linux_*
                  -windows_*              (x64 only atm)

                 Full list of targets (idiomatic names):
                  -azure_ampere
                  -azure_cobalt100
                  -azure_milano
                  -azure_icelake

                  -aws_sapphirelake
                  -aws_icelake
                  -aws_genoa
                  -aws_milano
                  -aws_graviton2
                  -aws_graviton3
                  -aws_graviton4

                  -gcp_axion
                  -gcp_ampere
                  -gcp_emeraldrapids
                  -gcp_milano,
                  -gcp_genoa,
                  -gcp_cascadeLake,

                  -hetzner_amd
                  -hetzner_milano,
                  -hetzner_ampere,
                  -hetzner_skylake,
                  -hetzner_dedicatedmilano,

                  short aliases:
                  -arm   = -azure_ampere
                  -intel = -azure_cascadelake
                  -x64   = -azure_castadelake
                  -amd   = -azure_milano

-profiler:       Use 'perf record' to collect a flamegraph/hot asm.

-perf_events     Exact events to collect with 'perf', e.g. -perf_events ld_align_lat
                 (events are target-specific, you can find the list of the supported events in BDN_Artifacts.zip
                 when you run a benchmark with -profiler arg).

-commit:         E.g. '-commit 72ea87f vs 380898a' or just '-commit 72ea87f'
                 Runs the benchmark on the specified commit(s) (PR is ignored)

-mono:           Use Mono runtime instead of CoreCLR for all targets. Should be possible to use
                 Mono interp too (LLVM is not supported yet).
                 Mono doesn't support -profiler (at least JIT)
                 To use mono-interp, use BDN args, e.g. --envvars MONO_ENV_OPTIONS:"--interpreter"

-nonativepgo:    Disable native PGO (Build with /p:NoPgoOptimize=true)

-pr %num%:       Run for changes in a specific PR. If bot is invoked from a PR - it takes changes
                 from that PR implicitly.

-codesafety:     Run memory safety checks for the PR, unrelated to the benchmarking.

-[args for BDN]: Args directly passed to BDN e.g. '--disasm', see
                 https://github.com/dotnet/BenchmarkDotNet/blob/master/docs/articles/guides/console-args.md

NOTE: BenchmarkRunner.Run or BenchmarkSwitcher.From* can be omitted (snippet without an entrypoint) Although, if they're presented then Program's args must be be forwarded to Run(args: args)

NOTE: Avoid [DisassemblyDiagnoser] - it causes crashes on Linux, better use --envvars DOTNET_JitDisasm:MethodName

Usage example: link

EgorBot commented 4 days ago

cc @EgorBo

EgorBot commented 4 days ago

Benchmark results on linux_azure_cascadelake

BenchmarkDotNet v0.14.0, Ubuntu 24.04.1 LTS (Noble Numbat)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
  Job-EHDZVC : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
  Job-RTETUT : .NET 9.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Method Toolchain Mean Error Ratio
JsonRoundtrip Main 13.31 ms 0.067 ms 1.00
JsonRoundtrip PR 13.22 ms 0.079 ms 0.99

BDN_Artifacts.zip

Profiling for Perf_Basic_JsonRoundtrip:

SVG flamegraph: Main vs PR 🔥 Speedscope flamegraph: Main vs PR Hot asm code: Main vs PR HW counters: Main vs PR


cc @EgorBo (agent_logs.txt)

EgorBot commented 4 days ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
  Job-VBASYL : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
  Job-XORBXL : .NET 9.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
Method Job Toolchain Mean Error Ratio
JsonRoundtrip Job-VBASYL \core_root_base\corerun.exe 12.35 ms 0.060 ms 1.00
JsonRoundtrip Job-XORBXL \core_root_diff\corerun.exe 12.26 ms 0.052 ms 0.99

BDN_Artifacts.zip

Profiling for first [Benchmark]:

NOTE: only the first [Benchmark] is profiled currently. Powered by ultra profiler.


cc @EgorBo (agent_logs.txt)

EgorBo commented 4 days ago

@EgorBot -win_intel -win_arm -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 4 days ago

Benchmark results on windows_azure_cobalt100

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314)
azure_cobalt100
DefaultJob : .NET 9.0.0 (9.0.24.52809), Arm64 RyuJIT AdvSIMD
StdDev=0.0352 μs
Method Mean Error
Test 2.947 μs 0.0377 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBot commented 4 days ago

Benchmark results on windows_azure_cascadelake

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314) (Hyper-V)
azure_cascadelake
DefaultJob : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0449 μs
Method Mean Error
Test 2.079 μs 0.0404 μs

BDN_Artifacts.zip

Profiling:

Uploaded to profiler.firefox.com: link
NOTE: only the first [Benchmark] is profiled currently.
Powered by ultra profiler.


cc @EgorBo (agent_logs.txt)

EgorBo commented 4 days ago

@EgorBot -win_arm -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 4 days ago

@EgorBot -win_azure_ampere -win_azure_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBo commented 4 days ago

@EgorBot -win_azure_ampere -win_azure_cobalt100

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}
EgorBot commented 4 days ago

Benchmark results on windows_azure_cobalt100

BenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2314)
azure_cobalt100
DefaultJob : .NET 9.0.0 (9.0.24.52809), Arm64 RyuJIT AdvSIMD
StdDev=0.0660 μs
Method Mean Error
Test 3.000 μs 0.0573 μs

BDN_Artifacts.zip

cc @EgorBo (agent_logs.txt)

EgorBo commented 4 days ago

@EgorBot -win_azure_cobalt100 -pr 106525

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args);

public class Bench
{
    [Benchmark]
    public string Test()
    {
        string str = "";
        for (int i = 0; i < 100; i++)
            str += i;
        return str;
    }
}