Skip to content

EgorBot for EgorBo in #111561 #238

Open
@EgorBot

Description

@EgorBot

Processing dotnet/runtime#111561 (comment) command:

Command

-azure_ampere -azure_cobalt100 -profiler

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

public class Benchmark
{
    private MyStruct _heap1;
    private MyLargeStruct _heap2;

    [Benchmark]
    public void ReturnBufferWB_Smallstruct_stack() => Smallstruct(default);

    [Benchmark]
    public void ReturnBufferWB_Smallstruct_heap() => _heap1 = Smallstruct(default);

    [Benchmark]
    public void ReturnBufferWB_Largestruct_stack() => Largestruct(default);

    [Benchmark]
    public void ReturnBufferWB_Largestruct_heap() => _heap2 = Largestruct(default);

    [MethodImpl(MethodImplOptions.NoInlining)]
    static MyStruct Smallstruct(MyStruct ms) => ms;

    [MethodImpl(MethodImplOptions.NoInlining)]
    static MyLargeStruct Largestruct(MyLargeStruct ms) => ms;
}

public struct MyStruct
{
    public object Fld1;
    public object Fld2;
    public object Fld3;
}

public struct MyLargeStruct
{
    public object Fld1;
    public object Fld2;
    public object Fld3;
    public object Fld4;
    public object Fld5;
    public object Fld6;
    public object Fld7;
    public object Fld8;
}

(EgorBot will reply in this issue)

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