add report
This commit is contained in:
@@ -42,6 +42,10 @@ namespace MyBenchmarks
|
|||||||
[Benchmark]
|
[Benchmark]
|
||||||
public int Compare() => m_Original.CompareTo(m_Original);
|
public int Compare() => m_Original.CompareTo(m_Original);
|
||||||
|
|
||||||
|
[Benchmark]
|
||||||
|
public int CompareFast() => m_Original.CompareFastTo(m_Original);
|
||||||
|
|
||||||
|
|
||||||
public sealed class RefArrayScore : IComparable
|
public sealed class RefArrayScore : IComparable
|
||||||
{
|
{
|
||||||
public static RefArrayScore MissMatch { get; } = new RefArrayScore();
|
public static RefArrayScore MissMatch { get; } = new RefArrayScore();
|
||||||
@@ -198,6 +202,16 @@ namespace MyBenchmarks
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int CompareFastTo(object? obj)
|
||||||
|
{
|
||||||
|
if (!(obj is Score other))
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ScoreFlag.CompareTo(other.ScoreFlag);
|
||||||
|
}
|
||||||
|
|
||||||
public bool Equals(RefSpanScore? other)
|
public bool Equals(RefSpanScore? other)
|
||||||
{
|
{
|
||||||
return ReferenceEquals(this, other);
|
return ReferenceEquals(this, other);
|
||||||
112
scorecompare/ScoreComparer.md
Normal file
112
scorecompare/ScoreComparer.md
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
``` ini
|
||||||
|
|
||||||
|
BenchmarkDotNet=v0.13.1, OS=debian 11 (container)
|
||||||
|
Intel Core i7-7800X CPU 3.50GHz (Kaby Lake), 1 CPU, 12 logical and 6 physical cores
|
||||||
|
.NET SDK=6.0.200
|
||||||
|
[Host] : .NET 6.0.2 (6.0.222.6406), X64 RyuJIT
|
||||||
|
DefaultJob : .NET 6.0.2 (6.0.222.6406), X64 RyuJIT
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
| Method | OriginalIndex | AlternateIndex | Mean | Error | StdDev |
|
||||||
|
|------------- |-------------- |--------------- |----------:|----------:|----------:|
|
||||||
|
| **CompareArray** | **0** | **0** | **23.855 ns** | **0.0141 ns** | **0.0132 ns** |
|
||||||
|
| CompareSpan | 0 | 0 | 18.339 ns | 0.0852 ns | 0.0711 ns |
|
||||||
|
| Compare | 0 | 0 | 2.965 ns | 0.0035 ns | 0.0033 ns |
|
||||||
|
| CompareFast | 0 | 0 | 1.379 ns | 0.0034 ns | 0.0032 ns |
|
||||||
|
| **CompareArray** | **0** | **1** | **26.154 ns** | **0.0119 ns** | **0.0106 ns** |
|
||||||
|
| CompareSpan | 0 | 1 | 20.360 ns | 0.0199 ns | 0.0177 ns |
|
||||||
|
| Compare | 0 | 1 | 2.974 ns | 0.0037 ns | 0.0031 ns |
|
||||||
|
| CompareFast | 0 | 1 | 1.380 ns | 0.0033 ns | 0.0031 ns |
|
||||||
|
| **CompareArray** | **0** | **2** | **29.015 ns** | **0.0255 ns** | **0.0226 ns** |
|
||||||
|
| CompareSpan | 0 | 2 | 22.792 ns | 0.0194 ns | 0.0181 ns |
|
||||||
|
| Compare | 0 | 2 | 2.963 ns | 0.0045 ns | 0.0040 ns |
|
||||||
|
| CompareFast | 0 | 2 | 1.378 ns | 0.0034 ns | 0.0032 ns |
|
||||||
|
| **CompareArray** | **0** | **3** | **34.291 ns** | **0.0667 ns** | **0.0591 ns** |
|
||||||
|
| CompareSpan | 0 | 3 | 24.488 ns | 0.0278 ns | 0.0217 ns |
|
||||||
|
| Compare | 0 | 3 | 2.966 ns | 0.0022 ns | 0.0017 ns |
|
||||||
|
| CompareFast | 0 | 3 | 1.378 ns | 0.0030 ns | 0.0027 ns |
|
||||||
|
| **CompareArray** | **0** | **4** | **36.389 ns** | **0.0693 ns** | **0.0648 ns** |
|
||||||
|
| CompareSpan | 0 | 4 | 26.344 ns | 0.0176 ns | 0.0156 ns |
|
||||||
|
| Compare | 0 | 4 | 2.963 ns | 0.0024 ns | 0.0020 ns |
|
||||||
|
| CompareFast | 0 | 4 | 1.378 ns | 0.0043 ns | 0.0041 ns |
|
||||||
|
| **CompareArray** | **1** | **0** | **26.046 ns** | **0.0158 ns** | **0.0147 ns** |
|
||||||
|
| CompareSpan | 1 | 0 | 20.513 ns | 0.0261 ns | 0.0244 ns |
|
||||||
|
| Compare | 1 | 0 | 2.759 ns | 0.0070 ns | 0.0062 ns |
|
||||||
|
| CompareFast | 1 | 0 | 1.378 ns | 0.0056 ns | 0.0052 ns |
|
||||||
|
| **CompareArray** | **1** | **1** | **30.631 ns** | **0.0199 ns** | **0.0176 ns** |
|
||||||
|
| CompareSpan | 1 | 1 | 21.913 ns | 0.0213 ns | 0.0166 ns |
|
||||||
|
| Compare | 1 | 1 | 2.755 ns | 0.0034 ns | 0.0031 ns |
|
||||||
|
| CompareFast | 1 | 1 | 1.375 ns | 0.0038 ns | 0.0036 ns |
|
||||||
|
| **CompareArray** | **1** | **2** | **31.439 ns** | **0.1093 ns** | **0.0969 ns** |
|
||||||
|
| CompareSpan | 1 | 2 | 24.551 ns | 0.0190 ns | 0.0178 ns |
|
||||||
|
| Compare | 1 | 2 | 2.746 ns | 0.0012 ns | 0.0011 ns |
|
||||||
|
| CompareFast | 1 | 2 | 1.384 ns | 0.0063 ns | 0.0059 ns |
|
||||||
|
| **CompareArray** | **1** | **3** | **33.702 ns** | **0.1124 ns** | **0.1051 ns** |
|
||||||
|
| CompareSpan | 1 | 3 | 26.459 ns | 0.0392 ns | 0.0347 ns |
|
||||||
|
| Compare | 1 | 3 | 2.757 ns | 0.0093 ns | 0.0087 ns |
|
||||||
|
| CompareFast | 1 | 3 | 1.380 ns | 0.0037 ns | 0.0035 ns |
|
||||||
|
| **CompareArray** | **1** | **4** | **36.806 ns** | **0.1277 ns** | **0.1132 ns** |
|
||||||
|
| CompareSpan | 1 | 4 | 28.244 ns | 0.0401 ns | 0.0375 ns |
|
||||||
|
| Compare | 1 | 4 | 2.759 ns | 0.0048 ns | 0.0043 ns |
|
||||||
|
| CompareFast | 1 | 4 | 1.378 ns | 0.0046 ns | 0.0043 ns |
|
||||||
|
| **CompareArray** | **2** | **0** | **28.709 ns** | **0.0813 ns** | **0.0760 ns** |
|
||||||
|
| CompareSpan | 2 | 0 | 22.748 ns | 0.0941 ns | 0.0880 ns |
|
||||||
|
| Compare | 2 | 0 | 2.268 ns | 0.0012 ns | 0.0011 ns |
|
||||||
|
| CompareFast | 2 | 0 | 1.376 ns | 0.0055 ns | 0.0051 ns |
|
||||||
|
| **CompareArray** | **2** | **1** | **31.359 ns** | **0.0633 ns** | **0.0592 ns** |
|
||||||
|
| CompareSpan | 2 | 1 | 24.513 ns | 0.0155 ns | 0.0138 ns |
|
||||||
|
| Compare | 2 | 1 | 2.263 ns | 0.0043 ns | 0.0040 ns |
|
||||||
|
| CompareFast | 2 | 1 | 1.387 ns | 0.0030 ns | 0.0028 ns |
|
||||||
|
| **CompareArray** | **2** | **2** | **33.790 ns** | **0.0864 ns** | **0.0808 ns** |
|
||||||
|
| CompareSpan | 2 | 2 | 26.476 ns | 0.0256 ns | 0.0239 ns |
|
||||||
|
| Compare | 2 | 2 | 2.275 ns | 0.0038 ns | 0.0032 ns |
|
||||||
|
| CompareFast | 2 | 2 | 1.384 ns | 0.0061 ns | 0.0054 ns |
|
||||||
|
| **CompareArray** | **2** | **3** | **36.624 ns** | **0.0644 ns** | **0.0603 ns** |
|
||||||
|
| CompareSpan | 2 | 3 | 28.462 ns | 0.0400 ns | 0.0374 ns |
|
||||||
|
| Compare | 2 | 3 | 2.277 ns | 0.0034 ns | 0.0028 ns |
|
||||||
|
| CompareFast | 2 | 3 | 1.391 ns | 0.0046 ns | 0.0041 ns |
|
||||||
|
| **CompareArray** | **2** | **4** | **39.548 ns** | **0.1309 ns** | **0.1160 ns** |
|
||||||
|
| CompareSpan | 2 | 4 | 30.363 ns | 0.0373 ns | 0.0349 ns |
|
||||||
|
| Compare | 2 | 4 | 2.263 ns | 0.0013 ns | 0.0013 ns |
|
||||||
|
| CompareFast | 2 | 4 | 1.379 ns | 0.0057 ns | 0.0051 ns |
|
||||||
|
| **CompareArray** | **3** | **0** | **33.186 ns** | **0.0194 ns** | **0.0181 ns** |
|
||||||
|
| CompareSpan | 3 | 0 | 24.597 ns | 0.0332 ns | 0.0294 ns |
|
||||||
|
| Compare | 3 | 0 | 1.738 ns | 0.0023 ns | 0.0019 ns |
|
||||||
|
| CompareFast | 3 | 0 | 1.377 ns | 0.0050 ns | 0.0046 ns |
|
||||||
|
| **CompareArray** | **3** | **1** | **37.322 ns** | **0.0225 ns** | **0.0210 ns** |
|
||||||
|
| CompareSpan | 3 | 1 | 26.243 ns | 0.0258 ns | 0.0241 ns |
|
||||||
|
| Compare | 3 | 1 | 1.740 ns | 0.0017 ns | 0.0016 ns |
|
||||||
|
| CompareFast | 3 | 1 | 1.378 ns | 0.0035 ns | 0.0033 ns |
|
||||||
|
| **CompareArray** | **3** | **2** | **37.104 ns** | **0.1544 ns** | **0.1444 ns** |
|
||||||
|
| CompareSpan | 3 | 2 | 28.499 ns | 0.0543 ns | 0.0454 ns |
|
||||||
|
| Compare | 3 | 2 | 1.743 ns | 0.0012 ns | 0.0011 ns |
|
||||||
|
| CompareFast | 3 | 2 | 1.378 ns | 0.0040 ns | 0.0036 ns |
|
||||||
|
| **CompareArray** | **3** | **3** | **39.548 ns** | **0.1680 ns** | **0.1490 ns** |
|
||||||
|
| CompareSpan | 3 | 3 | 29.818 ns | 0.0607 ns | 0.0538 ns |
|
||||||
|
| Compare | 3 | 3 | 1.740 ns | 0.0012 ns | 0.0011 ns |
|
||||||
|
| CompareFast | 3 | 3 | 1.383 ns | 0.0120 ns | 0.0112 ns |
|
||||||
|
| **CompareArray** | **3** | **4** | **42.576 ns** | **0.1619 ns** | **0.1515 ns** |
|
||||||
|
| CompareSpan | 3 | 4 | 32.165 ns | 0.0442 ns | 0.0414 ns |
|
||||||
|
| Compare | 3 | 4 | 1.741 ns | 0.0009 ns | 0.0008 ns |
|
||||||
|
| CompareFast | 3 | 4 | 1.380 ns | 0.0043 ns | 0.0038 ns |
|
||||||
|
| **CompareArray** | **4** | **0** | **34.480 ns** | **0.0583 ns** | **0.0545 ns** |
|
||||||
|
| CompareSpan | 4 | 0 | 26.550 ns | 0.0132 ns | 0.0111 ns |
|
||||||
|
| Compare | 4 | 0 | 1.477 ns | 0.0021 ns | 0.0018 ns |
|
||||||
|
| CompareFast | 4 | 0 | 1.379 ns | 0.0035 ns | 0.0033 ns |
|
||||||
|
| **CompareArray** | **4** | **1** | **41.002 ns** | **0.0885 ns** | **0.0784 ns** |
|
||||||
|
| CompareSpan | 4 | 1 | 28.449 ns | 0.0490 ns | 0.0458 ns |
|
||||||
|
| Compare | 4 | 1 | 1.474 ns | 0.0017 ns | 0.0015 ns |
|
||||||
|
| CompareFast | 4 | 1 | 1.379 ns | 0.0026 ns | 0.0023 ns |
|
||||||
|
| **CompareArray** | **4** | **2** | **39.862 ns** | **0.2128 ns** | **0.1990 ns** |
|
||||||
|
| CompareSpan | 4 | 2 | 30.517 ns | 0.0623 ns | 0.0583 ns |
|
||||||
|
| Compare | 4 | 2 | 1.482 ns | 0.0064 ns | 0.0057 ns |
|
||||||
|
| CompareFast | 4 | 2 | 1.379 ns | 0.0035 ns | 0.0033 ns |
|
||||||
|
| **CompareArray** | **4** | **3** | **42.669 ns** | **0.0942 ns** | **0.0881 ns** |
|
||||||
|
| CompareSpan | 4 | 3 | 32.171 ns | 0.0401 ns | 0.0375 ns |
|
||||||
|
| Compare | 4 | 3 | 1.484 ns | 0.0126 ns | 0.0118 ns |
|
||||||
|
| CompareFast | 4 | 3 | 1.376 ns | 0.0032 ns | 0.0030 ns |
|
||||||
|
| **CompareArray** | **4** | **4** | **44.850 ns** | **0.1694 ns** | **0.1585 ns** |
|
||||||
|
| CompareSpan | 4 | 4 | 33.664 ns | 0.0137 ns | 0.0121 ns |
|
||||||
|
| Compare | 4 | 4 | 1.473 ns | 0.0014 ns | 0.0012 ns |
|
||||||
|
| CompareFast | 4 | 4 | 1.379 ns | 0.0055 ns | 0.0051 ns |
|
||||||
Reference in New Issue
Block a user