Skip to content

MonoModBenchmark2

wuke32767 edited this page Mar 21, 2025 · 4 revisions

ba6e98a31156c55a15e07b74fbced8d0b5ea0222

All of these methods have 7 int parameters, and are marked as NoInlining.

Hook1 is hooked by one hook.

Hook1d is a delegate that do nothing but call Hook1.

Hook11 is hooked by one hook and one ilhook.

Hook2 is hooked by two hooks.


BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 2 logical cores and 1 physical core
.NET SDK 9.0.200
  [Host]     : .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2
  DefaultJob : .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2


Method Mean Error StdDev
Hook1d 42.15 ns 0.085 ns 0.071 ns
Hook1 41.71 ns 0.071 ns 0.063 ns
Hook11 37.42 ns 0.110 ns 0.103 ns
Hook2 54.11 ns 0.076 ns 0.067 ns

// * Detailed results *

MonoModBenchmark2.Hook1d: DefaultJob

Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 42.151 ns, StdErr = 0.020 ns (0.05%), N = 13, StdDev = 0.071 ns

Min = 42.048 ns, Q1 = 42.100 ns, Median = 42.163 ns, Q3 = 42.194 ns, Max = 42.305 ns

IQR = 0.094 ns, LowerFence = 41.959 ns, UpperFence = 42.335 ns

ConfidenceInterval = [42.066 ns; 42.236 ns] (CI 99.9%), Margin = 0.085 ns (0.20% of Mean)

Skewness = 0.4, Kurtosis = 2.43, MValue = 2

-------------------- Histogram --------------------

[42.008 ns ; 42.345 ns) | @@@@@@@@@@@@@


MonoModBenchmark2.Hook1: DefaultJob

Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 41.707 ns, StdErr = 0.017 ns (0.04%), N = 14, StdDev = 0.063 ns

Min = 41.595 ns, Q1 = 41.669 ns, Median = 41.720 ns, Q3 = 41.739 ns, Max = 41.814 ns

IQR = 0.071 ns, LowerFence = 41.563 ns, UpperFence = 41.845 ns

ConfidenceInterval = [41.637 ns; 41.778 ns] (CI 99.9%), Margin = 0.071 ns (0.17% of Mean)

Skewness = -0.18, Kurtosis = 2.03, MValue = 2

-------------------- Histogram --------------------

[41.561 ns ; 41.848 ns) | @@@@@@@@@@@@@@


MonoModBenchmark2.Hook11: DefaultJob

Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 37.424 ns, StdErr = 0.027 ns (0.07%), N = 15, StdDev = 0.103 ns

Min = 37.298 ns, Q1 = 37.353 ns, Median = 37.386 ns, Q3 = 37.470 ns, Max = 37.629 ns

IQR = 0.117 ns, LowerFence = 37.178 ns, UpperFence = 37.646 ns

ConfidenceInterval = [37.315 ns; 37.534 ns] (CI 99.9%), Margin = 0.110 ns (0.29% of Mean)

Skewness = 0.68, Kurtosis = 2.22, MValue = 2

-------------------- Histogram --------------------

[37.243 ns ; 37.684 ns) | @@@@@@@@@@@@@@@


MonoModBenchmark2.Hook2: DefaultJob

Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 54.105 ns, StdErr = 0.018 ns (0.03%), N = 14, StdDev = 0.067 ns

Min = 54.002 ns, Q1 = 54.050 ns, Median = 54.116 ns, Q3 = 54.161 ns, Max = 54.198 ns

IQR = 0.111 ns, LowerFence = 53.883 ns, UpperFence = 54.328 ns

ConfidenceInterval = [54.030 ns; 54.181 ns] (CI 99.9%), Margin = 0.076 ns (0.14% of Mean)

Skewness = -0.03, Kurtosis = 1.45, MValue = 2

-------------------- Histogram --------------------

[53.966 ns ; 54.235 ns) | @@@@@@@@@@@@@@


// * Summary *

BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)

AMD EPYC 7763, 1 CPU, 2 logical cores and 1 physical core

.NET SDK 9.0.200

[Host] : .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2

DefaultJob : .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2

| Method | Mean | Error | StdDev |

|------- |---------:|---------:|---------:|

| Hook1d | 42.15 ns | 0.085 ns | 0.071 ns |

| Hook1 | 41.71 ns | 0.071 ns | 0.063 ns |

| Hook11 | 37.42 ns | 0.110 ns | 0.103 ns |

| Hook2 | 54.11 ns | 0.076 ns | 0.067 ns |

// * Hints *

Outliers

MonoModBenchmark2.Hook1d: Default -> 2 outliers were removed (44.56 ns, 44.93 ns)

MonoModBenchmark2.Hook1: Default -> 1 outlier was removed (43.66 ns)

MonoModBenchmark2.Hook2: Default -> 1 outlier was removed (57.74 ns)

// * Legends *

Mean : Arithmetic mean of all measurements

Error : Half of 99.9% confidence interval

StdDev : Standard deviation of all measurements

1 ns : 1 Nanosecond (0.000000001 sec)

Clone this wiki locally