-
Notifications
You must be signed in to change notification settings - Fork 0
MonoModEmitReference
All methods are ilhooked.
ILHook of Standard / StandardO do nothing.
ILHook of EmitIntReference / EmitObjReference replace the return value with a EmitReference.
BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.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 |
|---|---|---|---|
| Standard | 26.77 ns | 0.013 ns | 0.011 ns |
| StandardO | 28.63 ns | 0.105 ns | 0.099 ns |
| EmitIntReference | 37.35 ns | 0.054 ns | 0.048 ns |
| EmitObjReference | 34.86 ns | 0.023 ns | 0.021 ns |
// * Detailed results *
MonoModEmitReference.Standard: DefaultJob
Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 26.772 ns, StdErr = 0.003 ns (0.01%), N = 14, StdDev = 0.011 ns
Min = 26.748 ns, Q1 = 26.766 ns, Median = 26.775 ns, Q3 = 26.780 ns, Max = 26.785 ns
IQR = 0.014 ns, LowerFence = 26.745 ns, UpperFence = 26.801 ns
ConfidenceInterval = [26.759 ns; 26.785 ns] (CI 99.9%), Margin = 0.013 ns (0.05% of Mean)
Skewness = -0.66, Kurtosis = 2.14, MValue = 2
-------------------- Histogram --------------------
[26.741 ns ; 26.792 ns) | @@@@@@@@@@@@@@
MonoModEmitReference.StandardO: DefaultJob
Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 28.626 ns, StdErr = 0.025 ns (0.09%), N = 15, StdDev = 0.099 ns
Min = 28.444 ns, Q1 = 28.557 ns, Median = 28.640 ns, Q3 = 28.695 ns, Max = 28.805 ns
IQR = 0.138 ns, LowerFence = 28.350 ns, UpperFence = 28.902 ns
ConfidenceInterval = [28.520 ns; 28.731 ns] (CI 99.9%), Margin = 0.105 ns (0.37% of Mean)
Skewness = -0.04, Kurtosis = 1.96, MValue = 2
-------------------- Histogram --------------------
[28.392 ns ; 28.858 ns) | @@@@@@@@@@@@@@@
MonoModEmitReference.EmitIntReference: DefaultJob
Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 37.346 ns, StdErr = 0.013 ns (0.03%), N = 14, StdDev = 0.048 ns
Min = 37.275 ns, Q1 = 37.312 ns, Median = 37.332 ns, Q3 = 37.378 ns, Max = 37.439 ns
IQR = 0.066 ns, LowerFence = 37.212 ns, UpperFence = 37.478 ns
ConfidenceInterval = [37.291 ns; 37.400 ns] (CI 99.9%), Margin = 0.054 ns (0.15% of Mean)
Skewness = 0.29, Kurtosis = 1.83, MValue = 2
-------------------- Histogram --------------------
[37.249 ns ; 37.466 ns) | @@@@@@@@@@@@@@
MonoModEmitReference.EmitObjReference: DefaultJob
Runtime = .NET 9.0.2 (9.0.225.6610), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 34.859 ns, StdErr = 0.005 ns (0.02%), N = 15, StdDev = 0.021 ns
Min = 34.831 ns, Q1 = 34.843 ns, Median = 34.859 ns, Q3 = 34.872 ns, Max = 34.895 ns
IQR = 0.030 ns, LowerFence = 34.798 ns, UpperFence = 34.917 ns
ConfidenceInterval = [34.837 ns; 34.882 ns] (CI 99.9%), Margin = 0.023 ns (0.07% of Mean)
Skewness = 0.38, Kurtosis = 1.72, MValue = 2
-------------------- Histogram --------------------
[34.819 ns ; 34.906 ns) | @@@@@@@@@@@@@@@
// * Summary *
BenchmarkDotNet v0.14.0, Ubuntu 24.04.2 LTS (Noble Numbat)
AMD EPYC 7763, 1 CPU, 4 logical and 2 physical cores
.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 |
|----------------- |---------:|---------:|---------:|
| Standard | 26.77 ns | 0.013 ns | 0.011 ns |
| StandardO | 28.63 ns | 0.105 ns | 0.099 ns |
| EmitIntReference | 37.35 ns | 0.054 ns | 0.048 ns |
| EmitObjReference | 34.86 ns | 0.023 ns | 0.021 ns |
// * Hints *
Outliers
MonoModEmitReference.Standard: Default -> 1 outlier was removed (28.49 ns)
MonoModEmitReference.EmitIntReference: Default -> 1 outlier was removed (39.40 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)