以下の内容はhttps://rksoftware.hatenablog.com/entry/2023/12/20/023000より取得しました。


メソッドの引数の型違いでパフォーマンス計測 (3)

前回メソッドの引数は object 型 > int 型 > ref int 型 で左に行くほど遅いと予想したので、雑に書いてみました。

以前の記事

rksoftware.hatenablog.com rksoftware.hatenablog.com

検証コード

namespace ClassLibrary1;

public static class MethodExtensions
{
    public static int ExtensionMethod(this object s) => 0;
    public static int ExtensionMethodInt(this int s) => 0;
    public static int ExtensionMethodRefInt(this ref int s) => 0;
}
using ClassLibrary1;

BenchmarkDotNet.Running.BenchmarkRunner.Run<Sample>(new BenchmarkDotNet.Configs.DebugInProcessConfig());

public class Sample
{
    int i = 0;
    [BenchmarkDotNet.Attributes.Benchmark]
    public void MethodObject() =>i.ExtensionMethod();
    [BenchmarkDotNet.Attributes.Benchmark]
    public void MethodInt() => i.ExtensionMethodInt();
    [BenchmarkDotNet.Attributes.Benchmark]
    public void MethodRefInt() => i.ExtensionMethodRefInt();
}

実行

Method Mean Error StdDev Median
MethodObject 2.3558 ns 0.0380 ns 0.0507 ns 2.3361 ns
MethodInt 0.0631 ns 0.0379 ns 0.0654 ns 0.0339 ns
MethodRefInt 0.0153 ns 0.0215 ns 0.0353 ns 0.0000 ns

はい

はい




以上の内容はhttps://rksoftware.hatenablog.com/entry/2023/12/20/023000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14