Skip to content

TrustMiniJIT

wuke32767 edited this page Mar 21, 2025 · 3 revisions

71ac725f001d581a5a045ab4a33e1e1eaf6f0c36

a variant of TrustJIT.

every methods only have 1 parameter now.


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.202
  [Host]     : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2
  DefaultJob : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2


Method Mean Error StdDev Median
Padding 0.0024 ns 0.0025 ns 0.0023 ns 0.0025 ns
Padding2 0.0009 ns 0.0037 ns 0.0029 ns 0.0000 ns
Instanced 32.0148 ns 0.0280 ns 0.0262 ns 32.0108 ns
Static 31.9663 ns 0.0466 ns 0.0436 ns 31.9544 ns
Aggressive 31.8556 ns 0.0271 ns 0.0254 ns 31.8541 ns
Simulate 0.6290 ns 0.0088 ns 0.0083 ns 0.6225 ns
SimulateAggressive 0.6266 ns 0.0060 ns 0.0056 ns 0.6236 ns
SimulateStatic 0.3141 ns 0.0055 ns 0.0052 ns 0.3112 ns
SimulateNo 1.8713 ns 0.0065 ns 0.0061 ns 1.8711 ns

// * Detailed results *

TrustMiniJIT.Padding: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 0.002 ns, StdErr = 0.001 ns (24.51%), N = 15, StdDev = 0.002 ns

Min = 0.000 ns, Q1 = 0.000 ns, Median = 0.002 ns, Q3 = 0.005 ns, Max = 0.006 ns

IQR = 0.005 ns, LowerFence = -0.007 ns, UpperFence = 0.011 ns

ConfidenceInterval = [-0.000 ns; 0.005 ns] (CI 99.9%), Margin = 0.002 ns (101.47% of Mean)

Skewness = 0.05, Kurtosis = 1.05, MValue = 3.71

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

[-0.000 ns ; 0.002 ns) | @@@@@@@

[ 0.002 ns ; 0.004 ns) | @

[ 0.004 ns ; 0.006 ns) | @@@@@@@


TrustMiniJIT.Padding2: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 0.001 ns, StdErr = 0.001 ns (91.87%), N = 12, StdDev = 0.003 ns

Min = 0.000 ns, Q1 = 0.000 ns, Median = 0.000 ns, Q3 = 0.000 ns, Max = 0.010 ns

IQR = 0.000 ns, LowerFence = 0.000 ns, UpperFence = 0.000 ns

ConfidenceInterval = [-0.003 ns; 0.005 ns] (CI 99.9%), Margin = 0.004 ns (407.62% of Mean)

Skewness = 2.61, Kurtosis = 8.36, MValue = 2

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

[-0.001 ns ; 0.002 ns) | @@@@@@@@@@@

[ 0.002 ns ; 0.006 ns) |

[ 0.006 ns ; 0.008 ns) |

[ 0.008 ns ; 0.012 ns) | @


TrustMiniJIT.Instanced: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 32.015 ns, StdErr = 0.007 ns (0.02%), N = 15, StdDev = 0.026 ns

Min = 31.987 ns, Q1 = 31.993 ns, Median = 32.011 ns, Q3 = 32.034 ns, Max = 32.061 ns

IQR = 0.042 ns, LowerFence = 31.930 ns, UpperFence = 32.097 ns

ConfidenceInterval = [31.987 ns; 32.043 ns] (CI 99.9%), Margin = 0.028 ns (0.09% of Mean)

Skewness = 0.54, Kurtosis = 1.63, MValue = 2

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

[31.973 ns ; 32.075 ns) | @@@@@@@@@@@@@@@


TrustMiniJIT.Static: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 31.966 ns, StdErr = 0.011 ns (0.04%), N = 15, StdDev = 0.044 ns

Min = 31.905 ns, Q1 = 31.931 ns, Median = 31.954 ns, Q3 = 31.999 ns, Max = 32.041 ns

IQR = 0.068 ns, LowerFence = 31.829 ns, UpperFence = 32.101 ns

ConfidenceInterval = [31.920 ns; 32.013 ns] (CI 99.9%), Margin = 0.047 ns (0.15% of Mean)

Skewness = 0.16, Kurtosis = 1.54, MValue = 2

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

[31.882 ns ; 32.064 ns) | @@@@@@@@@@@@@@@


TrustMiniJIT.Aggressive: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 31.856 ns, StdErr = 0.007 ns (0.02%), N = 15, StdDev = 0.025 ns

Min = 31.819 ns, Q1 = 31.835 ns, Median = 31.854 ns, Q3 = 31.874 ns, Max = 31.898 ns

IQR = 0.039 ns, LowerFence = 31.777 ns, UpperFence = 31.932 ns

ConfidenceInterval = [31.828 ns; 31.883 ns] (CI 99.9%), Margin = 0.027 ns (0.09% of Mean)

Skewness = 0.02, Kurtosis = 1.64, MValue = 2

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

[31.805 ns ; 31.912 ns) | @@@@@@@@@@@@@@@


TrustMiniJIT.Simulate: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 0.629 ns, StdErr = 0.002 ns (0.34%), N = 15, StdDev = 0.008 ns

Min = 0.620 ns, Q1 = 0.622 ns, Median = 0.623 ns, Q3 = 0.635 ns, Max = 0.644 ns

IQR = 0.013 ns, LowerFence = 0.602 ns, UpperFence = 0.655 ns

ConfidenceInterval = [0.620 ns; 0.638 ns] (CI 99.9%), Margin = 0.009 ns (1.40% of Mean)

Skewness = 0.34, Kurtosis = 1.32, MValue = 2

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

[0.616 ns ; 0.630 ns) | @@@@@@@@

[0.630 ns ; 0.648 ns) | @@@@@@@


TrustMiniJIT.SimulateAggressive: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 0.627 ns, StdErr = 0.001 ns (0.23%), N = 15, StdDev = 0.006 ns

Min = 0.621 ns, Q1 = 0.623 ns, Median = 0.624 ns, Q3 = 0.631 ns, Max = 0.636 ns

IQR = 0.008 ns, LowerFence = 0.610 ns, UpperFence = 0.644 ns

ConfidenceInterval = [0.621 ns; 0.633 ns] (CI 99.9%), Margin = 0.006 ns (0.95% of Mean)

Skewness = 0.73, Kurtosis = 1.69, MValue = 2

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

[0.618 ns ; 0.639 ns) | @@@@@@@@@@@@@@@


TrustMiniJIT.SimulateStatic: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 0.314 ns, StdErr = 0.001 ns (0.43%), N = 15, StdDev = 0.005 ns

Min = 0.310 ns, Q1 = 0.310 ns, Median = 0.311 ns, Q3 = 0.319 ns, Max = 0.322 ns

IQR = 0.009 ns, LowerFence = 0.296 ns, UpperFence = 0.333 ns

ConfidenceInterval = [0.309 ns; 0.320 ns] (CI 99.9%), Margin = 0.006 ns (1.76% of Mean)

Skewness = 0.69, Kurtosis = 1.53, MValue = 2

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

[0.308 ns ; 0.323 ns) | @@@@@@@@@@@@@@@


TrustMiniJIT.SimulateNo: DefaultJob

Runtime = .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2; GC = Concurrent Workstation

Mean = 1.871 ns, StdErr = 0.002 ns (0.08%), N = 15, StdDev = 0.006 ns

Min = 1.863 ns, Q1 = 1.865 ns, Median = 1.871 ns, Q3 = 1.876 ns, Max = 1.882 ns

IQR = 0.011 ns, LowerFence = 1.849 ns, UpperFence = 1.892 ns

ConfidenceInterval = [1.865 ns; 1.878 ns] (CI 99.9%), Margin = 0.006 ns (0.35% of Mean)

Skewness = 0.1, Kurtosis = 1.42, MValue = 2

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

[1.860 ns ; 1.885 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.202

[Host] : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

DefaultJob : .NET 9.0.3 (9.0.325.11113), X64 RyuJIT AVX2

| Method | Mean | Error | StdDev | Median |

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

| Padding | 0.0024 ns | 0.0025 ns | 0.0023 ns | 0.0025 ns |

| Padding2 | 0.0009 ns | 0.0037 ns | 0.0029 ns | 0.0000 ns |

| Instanced | 32.0148 ns | 0.0280 ns | 0.0262 ns | 32.0108 ns |

| Static | 31.9663 ns | 0.0466 ns | 0.0436 ns | 31.9544 ns |

| Aggressive | 31.8556 ns | 0.0271 ns | 0.0254 ns | 31.8541 ns |

| Simulate | 0.6290 ns | 0.0088 ns | 0.0083 ns | 0.6225 ns |

| SimulateAggressive | 0.6266 ns | 0.0060 ns | 0.0056 ns | 0.6236 ns |

| SimulateStatic | 0.3141 ns | 0.0055 ns | 0.0052 ns | 0.3112 ns |

| SimulateNo | 1.8713 ns | 0.0065 ns | 0.0061 ns | 1.8711 ns |

// * Warnings *

ZeroMeasurement

TrustMiniJIT.Padding: Default -> The method duration is indistinguishable from the empty method duration

TrustMiniJIT.Padding2: Default -> The method duration is indistinguishable from the empty method duration

MultimodalDistribution

TrustMiniJIT.Padding: Default -> It seems that the distribution is bimodal (mValue = 3.71)

// * Hints *

Outliers

TrustMiniJIT.Padding2: Default -> 3 outliers were removed (1.73 ns..1.88 ns)

// * Legends *

Mean : Arithmetic mean of all measurements

Error : Half of 99.9% confidence interval

StdDev : Standard deviation of all measurements

Median : Value separating the higher half of all measurements (50th percentile)

1 ns : 1 Nanosecond (0.000000001 sec)

Clone this wiki locally