Skip to content
This repository was archived by the owner on Feb 23, 2026. It is now read-only.
This repository was archived by the owner on Feb 23, 2026. It is now read-only.

EgorBot for AaronRobinsonMSFT in #109996 #166

Open

Description

@EgorBot

Processing dotnet/runtime#109996 (comment) command:

Command

-x64 -arm64 -profiler

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Running;

public class Bench
{
    struct S;

    [Benchmark]
    public Type RefElementType() => typeof(Bench[]).GetElementType();

    [Benchmark]
    public Type ValueElementType() => typeof(S[]).GetElementType();
}

(EgorBot will reply in this issue)

Activity

  1. EgorBot commented on Nov 20, 2024

    @EgorBot
    OwnerAuthor

    Benchmark results on linux_icelake

    BenchmarkDotNet v0.14.0, Ubuntu 22.04.5 LTS (Jammy Jellyfish)
    Intel Xeon Platinum 8370C CPU 2.80GHz, 1 CPU, 8 logical and 4 physical cores
      Job-VAVINC : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
      Job-XDXIJQ : .NET 10.0.0 (42.42.42.42424), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI
    
    Method Toolchain Mean Error Ratio
    RefElementType Main 2.892 ns 0.0062 ns 1.00
    RefElementType PR 4.606 ns 0.0010 ns 1.59
    ValueElementType Main 3.175 ns 0.0043 ns 1.00
    ValueElementType PR 2.852 ns 0.0010 ns 0.90

    BDN_Artifacts.zip

    Profile for Bench_ValueElementType:

    Flame graphs: Main vs PR 🔥
    Speedscope: Main vs PR
    Hot asm: Main vs PR
    Hot functions: Main vs PR
    Counters: Main vs PR

    Profile for Bench_RefElementType:

    Flame graphs: Main vs PR 🔥
    Speedscope: Main vs PR
    Hot asm: Main vs PR
    Hot functions: Main vs PR
    Counters: Main vs PR


    cc @AaronRobinsonMSFT (agent_logs.txt)

  2. EgorBo commented on Nov 20, 2024

    @EgorBo

    Hm.. interesting, arm64 job failed while it was building the runtime (during prejitting the corelib):

      Generating native image of System.Private.CoreLib for linux.arm64.Release. Logging to
      /home/egorbot/runtime/dotnet.sh /home/egorbot/runtime/artifacts/bin/coreclr/linux.arm64.Release/arm64/crossgen2/crossgen2.dll -o:/home/egorbot/runtime/artifacts/bin/coreclr/linux.arm64.Release/System.Private.CoreLib.dll -r:/home/egorbot/runtime/artifacts/bin/coreclr/linux.arm64.Release/IL/*.dll --targetarch:arm64 --targetos:linux -m:/home/egorbot/runtime/artifacts/bin/coreclr/linux.arm64.Release/StandardOptimizationData.mibc --embed-pgo-data -O /home/egorbot/runtime/artifacts/bin/coreclr/linux.arm64.Release/IL/System.Private.CoreLib.dll --perfmap-format-version:1 --perfmap --perfmap-path:/home/egorbot/runtime/artifacts/bin/coreclr/linux.arm64.Release/
    EXEC : error : Value cannot be null. (Parameter 'array') [/home/egorbot/runtime/src/coreclr/crossgen-corelib.proj]
      System.ArgumentNullException: Value cannot be null. (Parameter 'array')
         at System.Array.Clear(Array array, Int32 index, Int32 length)
         at Internal.JitInterface.CorInfoImpl.CompileMethodCleanup() in /home/egorbot/runtime/src/coreclr/tools/Common/JitInterface/CorInfoImpl.cs:line 700
         at Internal.JitInterface.CorInfoImpl.CompileMethod(MethodWithGCInfo methodCodeNodeNeedingCode, Logger logger) in /home/egorbot/runtime/src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs:line 826
    
  3. EgorBot commented on Nov 20, 2024

    @EgorBot
    OwnerAuthor

    Benchmark results on linux_arm64

    BenchmarkDotNet v0.14.0, Ubuntu 24.04 LTS (Noble Numbat)
    arm64
      Job-MZJMEU : .NET 10.0.0 (42.42.42.42424), Arm64 RyuJIT AdvSIMD
      Job-WMZSCV : .NET 10.0.0 (42.42.42.42424), Arm64 RyuJIT AdvSIMD
    
    Method Toolchain Mean Error Ratio
    RefElementType Main 3.632 ns 0.0023 ns 1.00
    RefElementType PR 2.887 ns 0.0008 ns 0.79
    ValueElementType Main 3.699 ns 0.0005 ns 1.00
    ValueElementType PR 2.886 ns 0.0005 ns 0.78

    BDN_Artifacts.zip

    Profile for Bench_ValueElementType:

    Flame graphs: Main vs PR 🔥
    Speedscope: Main vs PR
    Hot asm: Main vs PR
    Hot functions: Main vs PR
    Counters: Main vs PR

    Profile for Bench_RefElementType:

    Flame graphs: Main vs PR 🔥
    Speedscope: Main vs PR
    Hot asm: Main vs PR
    Hot functions: Main vs PR
    Counters: Main vs PR


    cc @EgorBo (agent_logs.txt)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions