EgorBot / runtime-utils

MIT License
0 stars 1 forks source link

EgorBot for EgorBo in #9 #17

Open EgorBot opened 1 week ago

EgorBot commented 1 week ago

Processing https://github.com/EgorBot/runtime-utils/issues/9#issuecomment-2323546143 command:


-intel -arm64

using System;
using System.Runtime.CompilerServices;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

BenchmarkRunner.Run<Bench>(args: args);

public class Bench
{
    [Benchmark]
    public void Foo()
    {
        for (int i = 0; i < 1000; i++)
            Work<char>(1);
    }

    [MethodImpl(MethodImplOptions.NoInlining)]
    static void Work<T>(int size) => GC.KeepAlive(GC.AllocateUninitializedArray<T>(size));
}

(EgorBot will reply in this issue)

EgorBot commented 1 week ago

Benchmark results on Intel

BenchmarkDotNet v0.14.0, Ubuntu 22.04.4 LTS (Jammy Jellyfish)
Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 16 logical and 8 physical cores
DefaultJob : .NET 9.0.0 (9.0.24.40507), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
StdDev=0.0802 μs
Method Mean Error
Foo 7.169 μs 0.0857 μs

BDN_Artifacts.zip

EgorBot commented 1 week ago

Build log

cc @EgorBo

EgorBot commented 1 week ago

Benchmark results on Arm64

BenchmarkDotNet v0.14.0, Ubuntu 22.04.4 LTS (Jammy Jellyfish)
Unknown processor
DefaultJob : .NET 9.0.0 (9.0.24.40507), Arm64 RyuJIT AdvSIMD
StdDev=0.0823 μs
Method Mean Error
Foo 8.902 μs 0.0879 μs

BDN_Artifacts.zip

EgorBot commented 1 week ago

Build log

cc @EgorBo