Open
Description
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
Labels
No labels