Last active
August 28, 2021 09:56
-
-
Save ZodmanPerth/00c3360d9d047d0d426a1c1874194b74 to your computer and use it in GitHub Desktop.
k-combination Algorithms of Rank and Unrank for Computer Programmers. Blog post at http://www.redperegrine.net/2021/04/10/software-algorithms-for-k-combinations/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace System | |
{ | |
/// <summary>Mathematical functions for binomials</summary> | |
public static class Binomials | |
{ | |
// / \ | |
// | n | from n | |
// | | | |
// | k | choose k | |
// \ / | |
// Kudos: https://en.wikipedia.org/wiki/Combination#Example_of_counting_combinations | |
/// <summary>Calculates the Binomial Coefficient (n choose k), which is the number of unique k-sized combinations in a set of n elements.</summary> | |
/// <remarks>We divide before multiplying to minimise the chance of overflow.</remarks> | |
public static int CalculateBinomialCoefficient(int n, int k) | |
{ | |
if (k > n) | |
return 0; | |
if (k == n) | |
return 1; | |
double result = n; // n choose 1 | |
for (double i = 1; i < k; i++) | |
{ | |
var numerator = n - i; | |
double factor = numerator / (i + 1); | |
result *= factor; | |
} | |
return (int)result; | |
} | |
//// Extensions | |
/// <summary>Returns the number (n) choose k</summary> | |
public static int Choose(this int n, int k) => | |
CalculateBinomialCoefficient(n, k); | |
/// <summary>Calculates the number of unique combinations of size k from n numbers (k-combination)</summary> | |
public static int CountUniqueCombinationsOfSize(this int n, int k) => | |
CalculateBinomialCoefficient(n, k); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
namespace LG.App.Services.Combinations | |
{ | |
/// <summary>A 1-based Combinatorial Number System of n numbers with unique k-combinations.</summary> | |
/// <remarks>The code here is not optimised for easier Mathematical comprehension. Use <see cref="FastCombinatorialNumberSystem"/> instead.</remarks> | |
public class CombinatorialNumberSystem : ICombinatorialNumberSystem | |
{ | |
readonly int n, k; | |
readonly int _dualOfZero; // dual of the number 0 in a zero based system | |
/// <summary>Creates a combinatorial number system with unique k-combinations chosen from n items</summary> | |
public CombinatorialNumberSystem(int n, int k) | |
{ | |
if (n <= 0) throw new ArgumentOutOfRangeException(nameof(n)); | |
if (k <= 0) throw new ArgumentOutOfRangeException(nameof(k)); | |
this.n = n; | |
this.k = k; | |
_dualOfZero = n - 1; | |
} | |
/// <summary>Returns the rank of the provided k-combination</summary> | |
public int Rank(int[] combination) | |
{ | |
var result = new int[k]; | |
combination.CopyTo(result, 0); | |
var dualOfCombinadic = 0; | |
var reducingK = k; | |
for (int i = 0; i < k; i++) | |
{ | |
// Take 1 (for base 0) | |
result[i] -= 1; | |
// Map to combinadic | |
result[i] = _dualOfZero - result[i]; | |
// Calculate dual of combinadic (by accumulation) | |
dualOfCombinadic += result[i].Choose(reducingK); | |
reducingK--; | |
} | |
// Calculate the dual | |
var dual = n.Choose(k) - 1 - dualOfCombinadic; | |
// Add 1 (for base 1) | |
dual++; | |
return dual; | |
} | |
/// <summary>Returns the k-combination with the provided rank</summary> | |
public int[] Unrank(int rank) | |
{ | |
// Move to base 0 | |
rank--; | |
// Calculate the dual | |
var dual = n.Choose(k) - 1 - rank; | |
// Calculate combinadic of the dual | |
var combination = CalculateCombinadic(dual); | |
for (int i = 0; i < k; i++) | |
{ | |
// Map to zero-based combination | |
combination[i] = _dualOfZero - combination[i]; | |
// Add 1 (for base 1) | |
combination[i] += 1; | |
} | |
return combination; | |
/// Local Functions | |
/// <summary>Calculates zero-based array of c such that maxRank = (c1 choose k-1) + (c2 choose k-2) + ... (c[of k-1] choose 1) </summary> | |
int[] CalculateCombinadic(int maxRank) | |
{ | |
var result = new int[k]; | |
var diminishingRank = maxRank; | |
var reducingK = k; | |
for (int i = 0; i < k; i++) | |
{ | |
result[i] = CalculateLargestRankBelowThreshold(n, reducingK, diminishingRank); | |
diminishingRank -= result[i].Choose(reducingK); | |
reducingK--; | |
} | |
return result; | |
} | |
/// <summary>Returns the highest rank of n choose k that is less than max</summary> | |
int CalculateLargestRankBelowThreshold(int n, int k, int threshold) | |
{ | |
int i = n - 1; | |
while (i.Choose(k) > threshold) | |
i--; | |
return i; | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
namespace LG.App.Services.Combinations | |
{ | |
/// <summary>A 1-based Combinatorial Number System of n numbers with unique k-combinations.</summary> | |
/// <remarks>The code here is optimised for use. Mathematical comprehension is obscured by the optimisations.</remarks> | |
public class FastCombinatorialNumberSystem : ICombinatorialNumberSystem | |
{ | |
readonly int n, k; | |
readonly int _dualOfZero; // dual of the number 0 in a zero based system | |
/// <summary>Creates a combinatorial number system with unique k-combinations chosen from n items</summary> | |
public FastCombinatorialNumberSystem(int n, int k) | |
{ | |
if (n <= 0) throw new ArgumentOutOfRangeException(nameof(n)); | |
if (k <= 0) throw new ArgumentOutOfRangeException(nameof(k)); | |
this.n = n; | |
this.k = k; | |
_dualOfZero = n - 1; | |
} | |
public int Rank(int[] combination) | |
{ | |
int ci; | |
var dual = n.Choose(k); // Add 1 (for base 1) | |
var reducingK = k; | |
for (int i = 0; i < k; i++) | |
{ | |
// Map to combinadic and take 1 (for base 0) | |
ci = _dualOfZero - combination[i] + 1; // removed brackets, turning - to + | |
// Remove ci portion of the dualOfCombinadic from dual (diminish) | |
dual -= ci.Choose(reducingK); | |
reducingK--; | |
} | |
return dual; | |
} | |
public int[] Unrank(int rank) | |
{ | |
// Calculate the dual (moving to zero based) | |
var dual = n.Choose(k) - rank; | |
var combination = new int[k]; | |
var diminishingRank = dual; | |
var reducingK = k; | |
for (int i = 0; i < k; i++) | |
{ | |
// Calculate ci of the combinadic of the dual | |
var ci = CalculateLargestRankBelowThreshold(n, reducingK, diminishingRank); | |
diminishingRank -= ci.Choose(reducingK); | |
reducingK--; | |
// Map to zero-based combination and add 1 (for base 1) | |
combination[i] = _dualOfZero - ci + 1; | |
} | |
return combination; | |
} | |
/// Local Functions | |
/// <summary>Returns the highest rank of n choose k that is less than max</summary> | |
int CalculateLargestRankBelowThreshold(int n, int k, int threshold) | |
{ | |
int i = n - 1; | |
while (i.Choose(k) > threshold) | |
i--; | |
return i; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
naming file |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using BenchmarkDotNet.Running; | |
using PerformanceTests.CombinatorialNumberSystems; | |
namespace LG.Benchmark.Tests | |
{ | |
public class Program | |
{ | |
// NOTE: | |
// This follows the strategy for testing with BenchmarkDotNet laid down by Adam Sitnik here: | |
// https://github.com/dotnet/BenchmarkDotNet/issues/1460#issuecomment-646531625 | |
// | |
// Build in release mode. | |
// Run from command line from within the project test folder with: | |
// dotnet run -c Release | |
public static void Main(string[] args) | |
{ | |
//var summary = BenchmarkRunner.Run(typeof(RankTests)); | |
var summary = BenchmarkRunner.Run(typeof(UnRankTests)); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using BenchmarkDotNet.Attributes; | |
using LG.App.Services.Combinations; | |
using System.Collections.Generic; | |
namespace PerformanceTests.CombinatorialNumberSystems | |
{ | |
[MemoryDiagnoser] | |
public class RankTests | |
{ | |
/// <summary>Test data for benchmark tests. The first digit is N, the second is K.</summary> | |
public IEnumerable<object[]> KCombinations() | |
{ | |
yield return new object[] { 5, 3, new[] { 1, 3, 5 } }; | |
yield return new object[] { 45, 6, new[] { 11, 16, 23, 34, 42, 43 } }; | |
yield return new object[] { 100, 6, new [] { 11, 16, 23, 34, 42, 43 } }; | |
} | |
[Benchmark(Baseline = true)] | |
[ArgumentsSource(nameof(KCombinations))] | |
public int Rank(int n, int k, int[] kCombination) | |
{ | |
var cns = new CombinatorialNumberSystem(n, k); | |
return cns.Rank(kCombination); | |
} | |
[Benchmark] | |
[ArgumentsSource(nameof(KCombinations))] | |
public int FastRank(int n, int k, int[] kCombination) | |
{ | |
var fastCns = new FastCombinatorialNumberSystem(n, k); | |
return fastCns.Rank(kCombination); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Validating benchmarks: | |
// ***** BenchmarkRunner: Start ***** | |
// ***** Found 6 benchmark(s) in total ***** | |
// ***** Building 1 exe(s) in Parallel: Start ***** | |
// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199 | |
// command took 1.51s and exited with 0 | |
// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199 | |
// command took 2.77s and exited with 0 | |
// ***** Done, took 00:00:04 (4.43 sec) ***** | |
// Found 6 benchmarks: | |
// RankTests.Rank: DefaultJob [n=5, k=3, kCombination=Int32[3]] | |
// RankTests.FastRank: DefaultJob [n=5, k=3, kCombination=Int32[3]] | |
// RankTests.Rank: DefaultJob [n=45, k=6, kCombination=Int32[6]] | |
// RankTests.FastRank: DefaultJob [n=45, k=6, kCombination=Int32[6]] | |
// RankTests.Rank: DefaultJob [n=100, k=6, kCombination=Int32[6]] | |
// RankTests.FastRank: DefaultJob [n=100, k=6, kCombination=Int32[6]] | |
// ************************** | |
// Benchmark: RankTests.Rank: DefaultJob [n=5, k=3, kCombination=Int32[3]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "45ee11c8-1f85-49bd-9a64-9c03db6b4199.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.RankTests.Rank(n: 5, k: 3, kCombination: [1, 3, 5])" --job "Default" --benchmarkId 0 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 359500.00 ns, 359.5000 us/op | |
WorkloadJitting 1: 1 op, 29977200.00 ns, 29.9772 ms/op | |
OverheadJitting 2: 16 op, 581300.00 ns, 36.3312 us/op | |
WorkloadJitting 2: 16 op, 619300.00 ns, 38.7062 us/op | |
WorkloadPilot 1: 16 op, 4200.00 ns, 262.5000 ns/op | |
WorkloadPilot 2: 32 op, 3000.00 ns, 93.7500 ns/op | |
WorkloadPilot 3: 64 op, 6300.00 ns, 98.4375 ns/op | |
WorkloadPilot 4: 128 op, 7600.00 ns, 59.3750 ns/op | |
WorkloadPilot 5: 256 op, 15200.00 ns, 59.3750 ns/op | |
WorkloadPilot 6: 512 op, 24100.00 ns, 47.0703 ns/op | |
WorkloadPilot 7: 1024 op, 47900.00 ns, 46.7773 ns/op | |
WorkloadPilot 8: 2048 op, 150000.00 ns, 73.2422 ns/op | |
WorkloadPilot 9: 4096 op, 215300.00 ns, 52.5635 ns/op | |
WorkloadPilot 10: 8192 op, 718800.00 ns, 87.7441 ns/op | |
WorkloadPilot 11: 16384 op, 1013700.00 ns, 61.8713 ns/op | |
WorkloadPilot 12: 32768 op, 1761700.00 ns, 53.7628 ns/op | |
WorkloadPilot 13: 65536 op, 3280500.00 ns, 50.0565 ns/op | |
WorkloadPilot 14: 131072 op, 5873900.00 ns, 44.8143 ns/op | |
WorkloadPilot 15: 262144 op, 13745300.00 ns, 52.4342 ns/op | |
WorkloadPilot 16: 524288 op, 25320600.00 ns, 48.2952 ns/op | |
WorkloadPilot 17: 1048576 op, 47340900.00 ns, 45.1478 ns/op | |
WorkloadPilot 18: 2097152 op, 90106400.00 ns, 42.9661 ns/op | |
WorkloadPilot 19: 4194304 op, 179071800.00 ns, 42.6940 ns/op | |
WorkloadPilot 20: 8388608 op, 372032300.00 ns, 44.3497 ns/op | |
WorkloadPilot 21: 16777216 op, 900635400.00 ns, 53.6821 ns/op | |
OverheadWarmup 1: 16777216 op, 25704900.00 ns, 1.5321 ns/op | |
OverheadWarmup 2: 16777216 op, 26161200.00 ns, 1.5593 ns/op | |
OverheadWarmup 3: 16777216 op, 28979500.00 ns, 1.7273 ns/op | |
OverheadWarmup 4: 16777216 op, 27775600.00 ns, 1.6556 ns/op | |
OverheadWarmup 5: 16777216 op, 29727700.00 ns, 1.7719 ns/op | |
OverheadWarmup 6: 16777216 op, 26732600.00 ns, 1.5934 ns/op | |
OverheadActual 1: 16777216 op, 26207100.00 ns, 1.5621 ns/op | |
OverheadActual 2: 16777216 op, 26282800.00 ns, 1.5666 ns/op | |
OverheadActual 3: 16777216 op, 25955500.00 ns, 1.5471 ns/op | |
OverheadActual 4: 16777216 op, 25903600.00 ns, 1.5440 ns/op | |
OverheadActual 5: 16777216 op, 26371000.00 ns, 1.5718 ns/op | |
OverheadActual 6: 16777216 op, 26468300.00 ns, 1.5776 ns/op | |
OverheadActual 7: 16777216 op, 27542000.00 ns, 1.6416 ns/op | |
OverheadActual 8: 16777216 op, 25952100.00 ns, 1.5469 ns/op | |
OverheadActual 9: 16777216 op, 26256400.00 ns, 1.5650 ns/op | |
OverheadActual 10: 16777216 op, 25233500.00 ns, 1.5040 ns/op | |
OverheadActual 11: 16777216 op, 24694200.00 ns, 1.4719 ns/op | |
OverheadActual 12: 16777216 op, 24665000.00 ns, 1.4701 ns/op | |
OverheadActual 13: 16777216 op, 24663300.00 ns, 1.4700 ns/op | |
OverheadActual 14: 16777216 op, 24885600.00 ns, 1.4833 ns/op | |
OverheadActual 15: 16777216 op, 24642000.00 ns, 1.4688 ns/op | |
WorkloadWarmup 1: 16777216 op, 853363800.00 ns, 50.8644 ns/op | |
WorkloadWarmup 2: 16777216 op, 774132000.00 ns, 46.1419 ns/op | |
WorkloadWarmup 3: 16777216 op, 750326100.00 ns, 44.7229 ns/op | |
WorkloadWarmup 4: 16777216 op, 789840400.00 ns, 47.0782 ns/op | |
WorkloadWarmup 5: 16777216 op, 809206300.00 ns, 48.2325 ns/op | |
WorkloadWarmup 6: 16777216 op, 813731000.00 ns, 48.5021 ns/op | |
WorkloadWarmup 7: 16777216 op, 752967600.00 ns, 44.8804 ns/op | |
WorkloadWarmup 8: 16777216 op, 760466600.00 ns, 45.3273 ns/op | |
WorkloadWarmup 9: 16777216 op, 807914100.00 ns, 48.1554 ns/op | |
WorkloadWarmup 10: 16777216 op, 795426500.00 ns, 47.4111 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 778219500.00 ns, 46.3855 ns/op | |
WorkloadActual 2: 16777216 op, 789751500.00 ns, 47.0729 ns/op | |
WorkloadActual 3: 16777216 op, 793805500.00 ns, 47.3145 ns/op | |
WorkloadActual 4: 16777216 op, 820612100.00 ns, 48.9123 ns/op | |
WorkloadActual 5: 16777216 op, 820951800.00 ns, 48.9325 ns/op | |
WorkloadActual 6: 16777216 op, 775191800.00 ns, 46.2050 ns/op | |
WorkloadActual 7: 16777216 op, 781625800.00 ns, 46.5885 ns/op | |
WorkloadActual 8: 16777216 op, 926022300.00 ns, 55.1952 ns/op | |
WorkloadActual 9: 16777216 op, 854515700.00 ns, 50.9331 ns/op | |
WorkloadActual 10: 16777216 op, 767548300.00 ns, 45.7494 ns/op | |
WorkloadActual 11: 16777216 op, 801714900.00 ns, 47.7859 ns/op | |
WorkloadActual 12: 16777216 op, 813421300.00 ns, 48.4837 ns/op | |
WorkloadActual 13: 16777216 op, 808318200.00 ns, 48.1795 ns/op | |
WorkloadActual 14: 16777216 op, 797864100.00 ns, 47.5564 ns/op | |
WorkloadActual 15: 16777216 op, 865791600.00 ns, 51.6052 ns/op | |
WorkloadActual 16: 16777216 op, 889952700.00 ns, 53.0453 ns/op | |
WorkloadActual 17: 16777216 op, 689972200.00 ns, 41.1255 ns/op | |
WorkloadActual 18: 16777216 op, 812475900.00 ns, 48.4273 ns/op | |
WorkloadActual 19: 16777216 op, 900046000.00 ns, 53.6469 ns/op | |
WorkloadActual 20: 16777216 op, 840246500.00 ns, 50.0826 ns/op | |
WorkloadActual 21: 16777216 op, 879475500.00 ns, 52.4208 ns/op | |
WorkloadActual 22: 16777216 op, 915068400.00 ns, 54.5423 ns/op | |
WorkloadActual 23: 16777216 op, 802148100.00 ns, 47.8118 ns/op | |
WorkloadActual 24: 16777216 op, 902090300.00 ns, 53.7688 ns/op | |
WorkloadActual 25: 16777216 op, 898992900.00 ns, 53.5842 ns/op | |
WorkloadActual 26: 16777216 op, 844163900.00 ns, 50.3161 ns/op | |
WorkloadActual 27: 16777216 op, 933666300.00 ns, 55.6508 ns/op | |
WorkloadActual 28: 16777216 op, 814692300.00 ns, 48.5594 ns/op | |
WorkloadActual 29: 16777216 op, 892906700.00 ns, 53.2214 ns/op | |
WorkloadActual 30: 16777216 op, 818184400.00 ns, 48.7676 ns/op | |
WorkloadActual 31: 16777216 op, 905881500.00 ns, 53.9947 ns/op | |
WorkloadActual 32: 16777216 op, 908779800.00 ns, 54.1675 ns/op | |
WorkloadActual 33: 16777216 op, 828319500.00 ns, 49.3717 ns/op | |
WorkloadActual 34: 16777216 op, 962952800.00 ns, 57.3965 ns/op | |
WorkloadActual 35: 16777216 op, 831284800.00 ns, 49.5484 ns/op | |
WorkloadActual 36: 16777216 op, 894617300.00 ns, 53.3233 ns/op | |
WorkloadActual 37: 16777216 op, 758506400.00 ns, 45.2105 ns/op | |
WorkloadActual 38: 16777216 op, 785929100.00 ns, 46.8450 ns/op | |
WorkloadActual 39: 16777216 op, 847244600.00 ns, 50.4997 ns/op | |
WorkloadActual 40: 16777216 op, 870154500.00 ns, 51.8652 ns/op | |
WorkloadActual 41: 16777216 op, 906838000.00 ns, 54.0518 ns/op | |
WorkloadActual 42: 16777216 op, 817676400.00 ns, 48.7373 ns/op | |
WorkloadActual 43: 16777216 op, 907891300.00 ns, 54.1145 ns/op | |
WorkloadActual 44: 16777216 op, 847061600.00 ns, 50.4888 ns/op | |
WorkloadActual 45: 16777216 op, 888025100.00 ns, 52.9304 ns/op | |
WorkloadActual 46: 16777216 op, 897891500.00 ns, 53.5185 ns/op | |
WorkloadActual 47: 16777216 op, 908574600.00 ns, 54.1553 ns/op | |
WorkloadActual 48: 16777216 op, 954311500.00 ns, 56.8814 ns/op | |
WorkloadActual 49: 16777216 op, 819406800.00 ns, 48.8405 ns/op | |
WorkloadActual 50: 16777216 op, 789095100.00 ns, 47.0337 ns/op | |
WorkloadActual 51: 16777216 op, 837864400.00 ns, 49.9406 ns/op | |
WorkloadActual 52: 16777216 op, 785091800.00 ns, 46.7951 ns/op | |
WorkloadActual 53: 16777216 op, 813273900.00 ns, 48.4749 ns/op | |
WorkloadActual 54: 16777216 op, 805778200.00 ns, 48.0281 ns/op | |
WorkloadActual 55: 16777216 op, 809151700.00 ns, 48.2292 ns/op | |
WorkloadActual 56: 16777216 op, 796818700.00 ns, 47.4941 ns/op | |
WorkloadActual 57: 16777216 op, 804823600.00 ns, 47.9712 ns/op | |
WorkloadActual 58: 16777216 op, 855697100.00 ns, 51.0035 ns/op | |
WorkloadActual 59: 16777216 op, 924716500.00 ns, 55.1174 ns/op | |
WorkloadActual 60: 16777216 op, 796982900.00 ns, 47.5039 ns/op | |
WorkloadActual 61: 16777216 op, 832603100.00 ns, 49.6270 ns/op | |
WorkloadActual 62: 16777216 op, 917377100.00 ns, 54.6799 ns/op | |
WorkloadActual 63: 16777216 op, 825110800.00 ns, 49.1804 ns/op | |
WorkloadActual 64: 16777216 op, 931796900.00 ns, 55.5394 ns/op | |
WorkloadActual 65: 16777216 op, 832644300.00 ns, 49.6295 ns/op | |
WorkloadActual 66: 16777216 op, 925762000.00 ns, 55.1797 ns/op | |
WorkloadActual 67: 16777216 op, 933367000.00 ns, 55.6330 ns/op | |
WorkloadActual 68: 16777216 op, 796601300.00 ns, 47.4811 ns/op | |
WorkloadActual 69: 16777216 op, 817527100.00 ns, 48.7284 ns/op | |
WorkloadActual 70: 16777216 op, 957263600.00 ns, 57.0574 ns/op | |
WorkloadActual 71: 16777216 op, 936657100.00 ns, 55.8291 ns/op | |
WorkloadActual 72: 16777216 op, 791109100.00 ns, 47.1538 ns/op | |
WorkloadActual 73: 16777216 op, 814624000.00 ns, 48.5554 ns/op | |
WorkloadActual 74: 16777216 op, 835830300.00 ns, 49.8194 ns/op | |
WorkloadActual 75: 16777216 op, 817766900.00 ns, 48.7427 ns/op | |
WorkloadActual 76: 16777216 op, 928996800.00 ns, 55.3725 ns/op | |
WorkloadActual 77: 16777216 op, 839081400.00 ns, 50.0131 ns/op | |
WorkloadActual 78: 16777216 op, 820012800.00 ns, 48.8766 ns/op | |
WorkloadActual 79: 16777216 op, 917204800.00 ns, 54.6697 ns/op | |
WorkloadActual 80: 16777216 op, 834102900.00 ns, 49.7164 ns/op | |
WorkloadActual 81: 16777216 op, 800008400.00 ns, 47.6842 ns/op | |
WorkloadActual 82: 16777216 op, 826155800.00 ns, 49.2427 ns/op | |
WorkloadActual 83: 16777216 op, 833367800.00 ns, 49.6726 ns/op | |
WorkloadActual 84: 16777216 op, 806756800.00 ns, 48.0865 ns/op | |
WorkloadActual 85: 16777216 op, 807024500.00 ns, 48.1024 ns/op | |
WorkloadActual 86: 16777216 op, 729347400.00 ns, 43.4725 ns/op | |
WorkloadActual 87: 16777216 op, 761714100.00 ns, 45.4017 ns/op | |
WorkloadActual 88: 16777216 op, 732710100.00 ns, 43.6729 ns/op | |
WorkloadActual 89: 16777216 op, 784270900.00 ns, 46.7462 ns/op | |
WorkloadActual 90: 16777216 op, 879606200.00 ns, 52.4286 ns/op | |
WorkloadActual 91: 16777216 op, 928442100.00 ns, 55.3395 ns/op | |
WorkloadActual 92: 16777216 op, 826588000.00 ns, 49.2685 ns/op | |
WorkloadActual 93: 16777216 op, 820259600.00 ns, 48.8913 ns/op | |
WorkloadActual 94: 16777216 op, 776572200.00 ns, 46.2873 ns/op | |
WorkloadActual 95: 16777216 op, 904104600.00 ns, 53.8888 ns/op | |
WorkloadActual 96: 16777216 op, 778680400.00 ns, 46.4130 ns/op | |
WorkloadActual 97: 16777216 op, 836511500.00 ns, 49.8600 ns/op | |
WorkloadActual 98: 16777216 op, 806497400.00 ns, 48.0710 ns/op | |
WorkloadActual 99: 16777216 op, 797599100.00 ns, 47.5406 ns/op | |
WorkloadActual 100: 16777216 op, 814942900.00 ns, 48.5744 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 752267400.00 ns, 44.8386 ns/op | |
WorkloadResult 2: 16777216 op, 763799400.00 ns, 45.5260 ns/op | |
WorkloadResult 3: 16777216 op, 767853400.00 ns, 45.7676 ns/op | |
WorkloadResult 4: 16777216 op, 794660000.00 ns, 47.3654 ns/op | |
WorkloadResult 5: 16777216 op, 794999700.00 ns, 47.3857 ns/op | |
WorkloadResult 6: 16777216 op, 749239700.00 ns, 44.6582 ns/op | |
WorkloadResult 7: 16777216 op, 755673700.00 ns, 45.0417 ns/op | |
WorkloadResult 8: 16777216 op, 900070200.00 ns, 53.6484 ns/op | |
WorkloadResult 9: 16777216 op, 828563600.00 ns, 49.3862 ns/op | |
WorkloadResult 10: 16777216 op, 741596200.00 ns, 44.2026 ns/op | |
WorkloadResult 11: 16777216 op, 775762800.00 ns, 46.2391 ns/op | |
WorkloadResult 12: 16777216 op, 787469200.00 ns, 46.9368 ns/op | |
WorkloadResult 13: 16777216 op, 782366100.00 ns, 46.6327 ns/op | |
WorkloadResult 14: 16777216 op, 771912000.00 ns, 46.0095 ns/op | |
WorkloadResult 15: 16777216 op, 839839500.00 ns, 50.0583 ns/op | |
WorkloadResult 16: 16777216 op, 864000600.00 ns, 51.4984 ns/op | |
WorkloadResult 17: 16777216 op, 664020100.00 ns, 39.5787 ns/op | |
WorkloadResult 18: 16777216 op, 786523800.00 ns, 46.8805 ns/op | |
WorkloadResult 19: 16777216 op, 874093900.00 ns, 52.1001 ns/op | |
WorkloadResult 20: 16777216 op, 814294400.00 ns, 48.5357 ns/op | |
WorkloadResult 21: 16777216 op, 853523400.00 ns, 50.8740 ns/op | |
WorkloadResult 22: 16777216 op, 889116300.00 ns, 52.9955 ns/op | |
WorkloadResult 23: 16777216 op, 776196000.00 ns, 46.2649 ns/op | |
WorkloadResult 24: 16777216 op, 876138200.00 ns, 52.2219 ns/op | |
WorkloadResult 25: 16777216 op, 873040800.00 ns, 52.0373 ns/op | |
WorkloadResult 26: 16777216 op, 818211800.00 ns, 48.7692 ns/op | |
WorkloadResult 27: 16777216 op, 907714200.00 ns, 54.1040 ns/op | |
WorkloadResult 28: 16777216 op, 788740200.00 ns, 47.0126 ns/op | |
WorkloadResult 29: 16777216 op, 866954600.00 ns, 51.6745 ns/op | |
WorkloadResult 30: 16777216 op, 792232300.00 ns, 47.2207 ns/op | |
WorkloadResult 31: 16777216 op, 879929400.00 ns, 52.4479 ns/op | |
WorkloadResult 32: 16777216 op, 882827700.00 ns, 52.6206 ns/op | |
WorkloadResult 33: 16777216 op, 802367400.00 ns, 47.8248 ns/op | |
WorkloadResult 34: 16777216 op, 937000700.00 ns, 55.8496 ns/op | |
WorkloadResult 35: 16777216 op, 805332700.00 ns, 48.0016 ns/op | |
WorkloadResult 36: 16777216 op, 868665200.00 ns, 51.7765 ns/op | |
WorkloadResult 37: 16777216 op, 732554300.00 ns, 43.6636 ns/op | |
WorkloadResult 38: 16777216 op, 759977000.00 ns, 45.2982 ns/op | |
WorkloadResult 39: 16777216 op, 821292500.00 ns, 48.9528 ns/op | |
WorkloadResult 40: 16777216 op, 844202400.00 ns, 50.3184 ns/op | |
WorkloadResult 41: 16777216 op, 880885900.00 ns, 52.5049 ns/op | |
WorkloadResult 42: 16777216 op, 791724300.00 ns, 47.1904 ns/op | |
WorkloadResult 43: 16777216 op, 881939200.00 ns, 52.5677 ns/op | |
WorkloadResult 44: 16777216 op, 821109500.00 ns, 48.9419 ns/op | |
WorkloadResult 45: 16777216 op, 862073000.00 ns, 51.3836 ns/op | |
WorkloadResult 46: 16777216 op, 871939400.00 ns, 51.9716 ns/op | |
WorkloadResult 47: 16777216 op, 882622500.00 ns, 52.6084 ns/op | |
WorkloadResult 48: 16777216 op, 928359400.00 ns, 55.3345 ns/op | |
WorkloadResult 49: 16777216 op, 793454700.00 ns, 47.2936 ns/op | |
WorkloadResult 50: 16777216 op, 763143000.00 ns, 45.4869 ns/op | |
WorkloadResult 51: 16777216 op, 811912300.00 ns, 48.3937 ns/op | |
WorkloadResult 52: 16777216 op, 759139700.00 ns, 45.2483 ns/op | |
WorkloadResult 53: 16777216 op, 787321800.00 ns, 46.9280 ns/op | |
WorkloadResult 54: 16777216 op, 779826100.00 ns, 46.4813 ns/op | |
WorkloadResult 55: 16777216 op, 783199600.00 ns, 46.6823 ns/op | |
WorkloadResult 56: 16777216 op, 770866600.00 ns, 45.9472 ns/op | |
WorkloadResult 57: 16777216 op, 778871500.00 ns, 46.4244 ns/op | |
WorkloadResult 58: 16777216 op, 829745000.00 ns, 49.4567 ns/op | |
WorkloadResult 59: 16777216 op, 898764400.00 ns, 53.5705 ns/op | |
WorkloadResult 60: 16777216 op, 771030800.00 ns, 45.9570 ns/op | |
WorkloadResult 61: 16777216 op, 806651000.00 ns, 48.0801 ns/op | |
WorkloadResult 62: 16777216 op, 891425000.00 ns, 53.1331 ns/op | |
WorkloadResult 63: 16777216 op, 799158700.00 ns, 47.6336 ns/op | |
WorkloadResult 64: 16777216 op, 905844800.00 ns, 53.9926 ns/op | |
WorkloadResult 65: 16777216 op, 806692200.00 ns, 48.0826 ns/op | |
WorkloadResult 66: 16777216 op, 899809900.00 ns, 53.6328 ns/op | |
WorkloadResult 67: 16777216 op, 907414900.00 ns, 54.0861 ns/op | |
WorkloadResult 68: 16777216 op, 770649200.00 ns, 45.9343 ns/op | |
WorkloadResult 69: 16777216 op, 791575000.00 ns, 47.1815 ns/op | |
WorkloadResult 70: 16777216 op, 931311500.00 ns, 55.5105 ns/op | |
WorkloadResult 71: 16777216 op, 910705000.00 ns, 54.2822 ns/op | |
WorkloadResult 72: 16777216 op, 765157000.00 ns, 45.6069 ns/op | |
WorkloadResult 73: 16777216 op, 788671900.00 ns, 47.0085 ns/op | |
WorkloadResult 74: 16777216 op, 809878200.00 ns, 48.2725 ns/op | |
WorkloadResult 75: 16777216 op, 791814800.00 ns, 47.1958 ns/op | |
WorkloadResult 76: 16777216 op, 903044700.00 ns, 53.8257 ns/op | |
WorkloadResult 77: 16777216 op, 813129300.00 ns, 48.4663 ns/op | |
WorkloadResult 78: 16777216 op, 794060700.00 ns, 47.3297 ns/op | |
WorkloadResult 79: 16777216 op, 891252700.00 ns, 53.1228 ns/op | |
WorkloadResult 80: 16777216 op, 808150800.00 ns, 48.1695 ns/op | |
WorkloadResult 81: 16777216 op, 774056300.00 ns, 46.1374 ns/op | |
WorkloadResult 82: 16777216 op, 800203700.00 ns, 47.6959 ns/op | |
WorkloadResult 83: 16777216 op, 807415700.00 ns, 48.1257 ns/op | |
WorkloadResult 84: 16777216 op, 780804700.00 ns, 46.5396 ns/op | |
WorkloadResult 85: 16777216 op, 781072400.00 ns, 46.5555 ns/op | |
WorkloadResult 86: 16777216 op, 703395300.00 ns, 41.9256 ns/op | |
WorkloadResult 87: 16777216 op, 735762000.00 ns, 43.8548 ns/op | |
WorkloadResult 88: 16777216 op, 706758000.00 ns, 42.1261 ns/op | |
WorkloadResult 89: 16777216 op, 758318800.00 ns, 45.1993 ns/op | |
WorkloadResult 90: 16777216 op, 853654100.00 ns, 50.8817 ns/op | |
WorkloadResult 91: 16777216 op, 902490000.00 ns, 53.7926 ns/op | |
WorkloadResult 92: 16777216 op, 800635900.00 ns, 47.7216 ns/op | |
WorkloadResult 93: 16777216 op, 794307500.00 ns, 47.3444 ns/op | |
WorkloadResult 94: 16777216 op, 750620100.00 ns, 44.7404 ns/op | |
WorkloadResult 95: 16777216 op, 878152500.00 ns, 52.3420 ns/op | |
WorkloadResult 96: 16777216 op, 752728300.00 ns, 44.8661 ns/op | |
WorkloadResult 97: 16777216 op, 810559400.00 ns, 48.3131 ns/op | |
WorkloadResult 98: 16777216 op, 780545300.00 ns, 46.5241 ns/op | |
WorkloadResult 99: 16777216 op, 771647000.00 ns, 45.9937 ns/op | |
WorkloadResult 100: 16777216 op, 788990800.00 ns, 47.0275 ns/op | |
GC: 385 0 0 1207959552 16777216 | |
Threading: 2 0 16777216 | |
// AfterAll | |
// Benchmark Process 15964 has exited with code 0 | |
Mean = 48.608 ns, StdErr = 0.340 ns (0.70%), N = 100, StdDev = 3.399 ns | |
Min = 39.579 ns, Q1 = 46.258 ns, Median = 47.709 ns, Q3 = 51.825 ns, Max = 55.850 ns | |
IQR = 5.567 ns, LowerFence = 37.908 ns, UpperFence = 60.176 ns | |
ConfidenceInterval = [47.456 ns; 49.761 ns] (CI 99.9%), Margin = 1.153 ns (2.37% of Mean) | |
Skewness = 0.23, Kurtosis = 2.39, MValue = 2.76 | |
// ************************** | |
// Benchmark: RankTests.FastRank: DefaultJob [n=5, k=3, kCombination=Int32[3]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "45ee11c8-1f85-49bd-9a64-9c03db6b4199.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.RankTests.FastRank(n: 5, k: 3, kCombination: [1, 3, 5])" --job "Default" --benchmarkId 1 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 365900.00 ns, 365.9000 us/op | |
WorkloadJitting 1: 1 op, 2035800.00 ns, 2.0358 ms/op | |
OverheadJitting 2: 16 op, 628800.00 ns, 39.3000 us/op | |
WorkloadJitting 2: 16 op, 559400.00 ns, 34.9625 us/op | |
WorkloadPilot 1: 16 op, 2200.00 ns, 137.5000 ns/op | |
WorkloadPilot 2: 32 op, 1700.00 ns, 53.1250 ns/op | |
WorkloadPilot 3: 64 op, 3800.00 ns, 59.3750 ns/op | |
WorkloadPilot 4: 128 op, 4000.00 ns, 31.2500 ns/op | |
WorkloadPilot 5: 256 op, 6200.00 ns, 24.2188 ns/op | |
WorkloadPilot 6: 512 op, 14700.00 ns, 28.7109 ns/op | |
WorkloadPilot 7: 1024 op, 20600.00 ns, 20.1172 ns/op | |
WorkloadPilot 8: 2048 op, 57900.00 ns, 28.2715 ns/op | |
WorkloadPilot 9: 4096 op, 83400.00 ns, 20.3613 ns/op | |
WorkloadPilot 10: 8192 op, 181200.00 ns, 22.1191 ns/op | |
WorkloadPilot 11: 16384 op, 419200.00 ns, 25.5859 ns/op | |
WorkloadPilot 12: 32768 op, 810300.00 ns, 24.7284 ns/op | |
WorkloadPilot 13: 65536 op, 1683100.00 ns, 25.6821 ns/op | |
WorkloadPilot 14: 131072 op, 3554700.00 ns, 27.1202 ns/op | |
WorkloadPilot 15: 262144 op, 5331900.00 ns, 20.3396 ns/op | |
WorkloadPilot 16: 524288 op, 11566500.00 ns, 22.0613 ns/op | |
WorkloadPilot 17: 1048576 op, 22087700.00 ns, 21.0645 ns/op | |
WorkloadPilot 18: 2097152 op, 45756900.00 ns, 21.8186 ns/op | |
WorkloadPilot 19: 4194304 op, 89551800.00 ns, 21.3508 ns/op | |
WorkloadPilot 20: 8388608 op, 170252500.00 ns, 20.2957 ns/op | |
WorkloadPilot 21: 16777216 op, 310219500.00 ns, 18.4905 ns/op | |
WorkloadPilot 22: 33554432 op, 575997100.00 ns, 17.1661 ns/op | |
OverheadWarmup 1: 33554432 op, 52900100.00 ns, 1.5765 ns/op | |
OverheadWarmup 2: 33554432 op, 52787100.00 ns, 1.5732 ns/op | |
OverheadWarmup 3: 33554432 op, 52814200.00 ns, 1.5740 ns/op | |
OverheadWarmup 4: 33554432 op, 53724800.00 ns, 1.6011 ns/op | |
OverheadWarmup 5: 33554432 op, 54546100.00 ns, 1.6256 ns/op | |
OverheadWarmup 6: 33554432 op, 54604800.00 ns, 1.6273 ns/op | |
OverheadWarmup 7: 33554432 op, 53298100.00 ns, 1.5884 ns/op | |
OverheadWarmup 8: 33554432 op, 53265800.00 ns, 1.5874 ns/op | |
OverheadWarmup 9: 33554432 op, 49444700.00 ns, 1.4736 ns/op | |
OverheadWarmup 10: 33554432 op, 49276100.00 ns, 1.4685 ns/op | |
OverheadActual 1: 33554432 op, 49671600.00 ns, 1.4803 ns/op | |
OverheadActual 2: 33554432 op, 51016800.00 ns, 1.5204 ns/op | |
OverheadActual 3: 33554432 op, 54896700.00 ns, 1.6360 ns/op | |
OverheadActual 4: 33554432 op, 49445500.00 ns, 1.4736 ns/op | |
OverheadActual 5: 33554432 op, 49245700.00 ns, 1.4676 ns/op | |
OverheadActual 6: 33554432 op, 49721000.00 ns, 1.4818 ns/op | |
OverheadActual 7: 33554432 op, 49695700.00 ns, 1.4810 ns/op | |
OverheadActual 8: 33554432 op, 49693900.00 ns, 1.4810 ns/op | |
OverheadActual 9: 33554432 op, 51226400.00 ns, 1.5267 ns/op | |
OverheadActual 10: 33554432 op, 50357000.00 ns, 1.5008 ns/op | |
OverheadActual 11: 33554432 op, 50116500.00 ns, 1.4936 ns/op | |
OverheadActual 12: 33554432 op, 50542900.00 ns, 1.5063 ns/op | |
OverheadActual 13: 33554432 op, 50081600.00 ns, 1.4925 ns/op | |
OverheadActual 14: 33554432 op, 49832500.00 ns, 1.4851 ns/op | |
OverheadActual 15: 33554432 op, 49560100.00 ns, 1.4770 ns/op | |
WorkloadWarmup 1: 33554432 op, 730855000.00 ns, 21.7812 ns/op | |
WorkloadWarmup 2: 33554432 op, 816760700.00 ns, 24.3414 ns/op | |
WorkloadWarmup 3: 33554432 op, 802366800.00 ns, 23.9124 ns/op | |
WorkloadWarmup 4: 33554432 op, 846206300.00 ns, 25.2189 ns/op | |
WorkloadWarmup 5: 33554432 op, 779210200.00 ns, 23.2223 ns/op | |
WorkloadWarmup 6: 33554432 op, 836038900.00 ns, 24.9159 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 33554432 op, 757416900.00 ns, 22.5728 ns/op | |
WorkloadActual 2: 33554432 op, 796364100.00 ns, 23.7335 ns/op | |
WorkloadActual 3: 33554432 op, 793785700.00 ns, 23.6567 ns/op | |
WorkloadActual 4: 33554432 op, 666255400.00 ns, 19.8560 ns/op | |
WorkloadActual 5: 33554432 op, 689996400.00 ns, 20.5635 ns/op | |
WorkloadActual 6: 33554432 op, 734401700.00 ns, 21.8869 ns/op | |
WorkloadActual 7: 33554432 op, 700027200.00 ns, 20.8624 ns/op | |
WorkloadActual 8: 33554432 op, 804099200.00 ns, 23.9640 ns/op | |
WorkloadActual 9: 33554432 op, 700630400.00 ns, 20.8804 ns/op | |
WorkloadActual 10: 33554432 op, 700338300.00 ns, 20.8717 ns/op | |
WorkloadActual 11: 33554432 op, 794159600.00 ns, 23.6678 ns/op | |
WorkloadActual 12: 33554432 op, 758528700.00 ns, 22.6059 ns/op | |
WorkloadActual 13: 33554432 op, 792178800.00 ns, 23.6088 ns/op | |
WorkloadActual 14: 33554432 op, 835741700.00 ns, 24.9070 ns/op | |
WorkloadActual 15: 33554432 op, 688571900.00 ns, 20.5210 ns/op | |
WorkloadActual 16: 33554432 op, 612100500.00 ns, 18.2420 ns/op | |
WorkloadActual 17: 33554432 op, 808121600.00 ns, 24.0839 ns/op | |
WorkloadActual 18: 33554432 op, 701229000.00 ns, 20.8983 ns/op | |
WorkloadActual 19: 33554432 op, 829096900.00 ns, 24.7090 ns/op | |
WorkloadActual 20: 33554432 op, 705358300.00 ns, 21.0213 ns/op | |
WorkloadActual 21: 33554432 op, 717223800.00 ns, 21.3749 ns/op | |
WorkloadActual 22: 33554432 op, 770272700.00 ns, 22.9559 ns/op | |
WorkloadActual 23: 33554432 op, 726778700.00 ns, 21.6597 ns/op | |
WorkloadActual 24: 33554432 op, 731964300.00 ns, 21.8142 ns/op | |
WorkloadActual 25: 33554432 op, 706824900.00 ns, 21.0650 ns/op | |
WorkloadActual 26: 33554432 op, 828505100.00 ns, 24.6914 ns/op | |
WorkloadActual 27: 33554432 op, 832379200.00 ns, 24.8068 ns/op | |
WorkloadActual 28: 33554432 op, 818018700.00 ns, 24.3789 ns/op | |
WorkloadActual 29: 33554432 op, 752261300.00 ns, 22.4191 ns/op | |
WorkloadActual 30: 33554432 op, 823374600.00 ns, 24.5385 ns/op | |
WorkloadActual 31: 33554432 op, 752350200.00 ns, 22.4218 ns/op | |
WorkloadActual 32: 33554432 op, 865295000.00 ns, 25.7878 ns/op | |
WorkloadActual 33: 33554432 op, 651525300.00 ns, 19.4170 ns/op | |
WorkloadActual 34: 33554432 op, 620365900.00 ns, 18.4883 ns/op | |
WorkloadActual 35: 33554432 op, 619948400.00 ns, 18.4759 ns/op | |
WorkloadActual 36: 33554432 op, 621962000.00 ns, 18.5359 ns/op | |
WorkloadActual 37: 33554432 op, 699717800.00 ns, 20.8532 ns/op | |
WorkloadActual 38: 33554432 op, 707351700.00 ns, 21.0807 ns/op | |
WorkloadActual 39: 33554432 op, 767682200.00 ns, 22.8787 ns/op | |
WorkloadActual 40: 33554432 op, 724832300.00 ns, 21.6017 ns/op | |
WorkloadActual 41: 33554432 op, 708592800.00 ns, 21.1177 ns/op | |
WorkloadActual 42: 33554432 op, 758266400.00 ns, 22.5981 ns/op | |
WorkloadActual 43: 33554432 op, 697252300.00 ns, 20.7797 ns/op | |
WorkloadActual 44: 33554432 op, 743548200.00 ns, 22.1595 ns/op | |
WorkloadActual 45: 33554432 op, 723156300.00 ns, 21.5517 ns/op | |
WorkloadActual 46: 33554432 op, 712875000.00 ns, 21.2453 ns/op | |
WorkloadActual 47: 33554432 op, 691089300.00 ns, 20.5961 ns/op | |
WorkloadActual 48: 33554432 op, 813097300.00 ns, 24.2322 ns/op | |
WorkloadActual 49: 33554432 op, 788914000.00 ns, 23.5115 ns/op | |
WorkloadActual 50: 33554432 op, 755076000.00 ns, 22.5030 ns/op | |
WorkloadActual 51: 33554432 op, 775823800.00 ns, 23.1214 ns/op | |
WorkloadActual 52: 33554432 op, 726958800.00 ns, 21.6651 ns/op | |
WorkloadActual 53: 33554432 op, 833396600.00 ns, 24.8372 ns/op | |
WorkloadActual 54: 33554432 op, 815176700.00 ns, 24.2942 ns/op | |
WorkloadActual 55: 33554432 op, 730453100.00 ns, 21.7692 ns/op | |
WorkloadActual 56: 33554432 op, 745513300.00 ns, 22.2180 ns/op | |
WorkloadActual 57: 33554432 op, 734404200.00 ns, 21.8870 ns/op | |
WorkloadActual 58: 33554432 op, 788273700.00 ns, 23.4924 ns/op | |
WorkloadActual 59: 33554432 op, 729742800.00 ns, 21.7480 ns/op | |
WorkloadActual 60: 33554432 op, 632945600.00 ns, 18.8632 ns/op | |
WorkloadActual 61: 33554432 op, 680670500.00 ns, 20.2856 ns/op | |
WorkloadActual 62: 33554432 op, 725816900.00 ns, 21.6310 ns/op | |
WorkloadActual 63: 33554432 op, 694679100.00 ns, 20.7031 ns/op | |
WorkloadActual 64: 33554432 op, 729308100.00 ns, 21.7351 ns/op | |
WorkloadActual 65: 33554432 op, 704977300.00 ns, 21.0100 ns/op | |
WorkloadActual 66: 33554432 op, 764248800.00 ns, 22.7764 ns/op | |
WorkloadActual 67: 33554432 op, 727771800.00 ns, 21.6893 ns/op | |
WorkloadActual 68: 33554432 op, 715270600.00 ns, 21.3167 ns/op | |
WorkloadActual 69: 33554432 op, 708959100.00 ns, 21.1286 ns/op | |
WorkloadActual 70: 33554432 op, 811104200.00 ns, 24.1728 ns/op | |
WorkloadActual 71: 33554432 op, 774151200.00 ns, 23.0715 ns/op | |
WorkloadActual 72: 33554432 op, 822098700.00 ns, 24.5005 ns/op | |
WorkloadActual 73: 33554432 op, 754619400.00 ns, 22.4894 ns/op | |
WorkloadActual 74: 33554432 op, 688227700.00 ns, 20.5108 ns/op | |
WorkloadActual 75: 33554432 op, 723511400.00 ns, 21.5623 ns/op | |
WorkloadActual 76: 33554432 op, 853168600.00 ns, 25.4264 ns/op | |
WorkloadActual 77: 33554432 op, 800181700.00 ns, 23.8473 ns/op | |
WorkloadActual 78: 33554432 op, 869365400.00 ns, 25.9091 ns/op | |
WorkloadActual 79: 33554432 op, 869744100.00 ns, 25.9204 ns/op | |
WorkloadActual 80: 33554432 op, 871390000.00 ns, 25.9694 ns/op | |
WorkloadActual 81: 33554432 op, 732827600.00 ns, 21.8400 ns/op | |
WorkloadActual 82: 33554432 op, 791043400.00 ns, 23.5749 ns/op | |
WorkloadActual 83: 33554432 op, 748129100.00 ns, 22.2960 ns/op | |
WorkloadActual 84: 33554432 op, 719312900.00 ns, 21.4372 ns/op | |
WorkloadActual 85: 33554432 op, 615463300.00 ns, 18.3422 ns/op | |
WorkloadActual 86: 33554432 op, 873586900.00 ns, 26.0349 ns/op | |
WorkloadActual 87: 33554432 op, 868692600.00 ns, 25.8891 ns/op | |
WorkloadActual 88: 33554432 op, 732863900.00 ns, 21.8410 ns/op | |
WorkloadActual 89: 33554432 op, 835067000.00 ns, 24.8869 ns/op | |
WorkloadActual 90: 33554432 op, 758525300.00 ns, 22.6058 ns/op | |
WorkloadActual 91: 33554432 op, 803679900.00 ns, 23.9515 ns/op | |
WorkloadActual 92: 33554432 op, 724592200.00 ns, 21.5945 ns/op | |
WorkloadActual 93: 33554432 op, 712027400.00 ns, 21.2201 ns/op | |
WorkloadActual 94: 33554432 op, 705139800.00 ns, 21.0148 ns/op | |
WorkloadActual 95: 33554432 op, 824685200.00 ns, 24.5775 ns/op | |
WorkloadActual 96: 33554432 op, 838214200.00 ns, 24.9807 ns/op | |
WorkloadActual 97: 33554432 op, 823599900.00 ns, 24.5452 ns/op | |
WorkloadActual 98: 33554432 op, 786173900.00 ns, 23.4298 ns/op | |
WorkloadActual 99: 33554432 op, 780527000.00 ns, 23.2615 ns/op | |
WorkloadActual 100: 33554432 op, 835399300.00 ns, 24.8968 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 33554432 op, 707584400.00 ns, 21.0877 ns/op | |
WorkloadResult 2: 33554432 op, 746531600.00 ns, 22.2484 ns/op | |
WorkloadResult 3: 33554432 op, 743953200.00 ns, 22.1715 ns/op | |
WorkloadResult 4: 33554432 op, 616422900.00 ns, 18.3708 ns/op | |
WorkloadResult 5: 33554432 op, 640163900.00 ns, 19.0784 ns/op | |
WorkloadResult 6: 33554432 op, 684569200.00 ns, 20.4018 ns/op | |
WorkloadResult 7: 33554432 op, 650194700.00 ns, 19.3773 ns/op | |
WorkloadResult 8: 33554432 op, 754266700.00 ns, 22.4789 ns/op | |
WorkloadResult 9: 33554432 op, 650797900.00 ns, 19.3953 ns/op | |
WorkloadResult 10: 33554432 op, 650505800.00 ns, 19.3866 ns/op | |
WorkloadResult 11: 33554432 op, 744327100.00 ns, 22.1827 ns/op | |
WorkloadResult 12: 33554432 op, 708696200.00 ns, 21.1208 ns/op | |
WorkloadResult 13: 33554432 op, 742346300.00 ns, 22.1236 ns/op | |
WorkloadResult 14: 33554432 op, 785909200.00 ns, 23.4219 ns/op | |
WorkloadResult 15: 33554432 op, 638739400.00 ns, 19.0359 ns/op | |
WorkloadResult 16: 33554432 op, 562268000.00 ns, 16.7569 ns/op | |
WorkloadResult 17: 33554432 op, 758289100.00 ns, 22.5988 ns/op | |
WorkloadResult 18: 33554432 op, 651396500.00 ns, 19.4131 ns/op | |
WorkloadResult 19: 33554432 op, 779264400.00 ns, 23.2239 ns/op | |
WorkloadResult 20: 33554432 op, 655525800.00 ns, 19.5362 ns/op | |
WorkloadResult 21: 33554432 op, 667391300.00 ns, 19.8898 ns/op | |
WorkloadResult 22: 33554432 op, 720440200.00 ns, 21.4708 ns/op | |
WorkloadResult 23: 33554432 op, 676946200.00 ns, 20.1746 ns/op | |
WorkloadResult 24: 33554432 op, 682131800.00 ns, 20.3291 ns/op | |
WorkloadResult 25: 33554432 op, 656992400.00 ns, 19.5799 ns/op | |
WorkloadResult 26: 33554432 op, 778672600.00 ns, 23.2063 ns/op | |
WorkloadResult 27: 33554432 op, 782546700.00 ns, 23.3217 ns/op | |
WorkloadResult 28: 33554432 op, 768186200.00 ns, 22.8937 ns/op | |
WorkloadResult 29: 33554432 op, 702428800.00 ns, 20.9340 ns/op | |
WorkloadResult 30: 33554432 op, 773542100.00 ns, 23.0534 ns/op | |
WorkloadResult 31: 33554432 op, 702517700.00 ns, 20.9367 ns/op | |
WorkloadResult 32: 33554432 op, 815462500.00 ns, 24.3027 ns/op | |
WorkloadResult 33: 33554432 op, 601692800.00 ns, 17.9318 ns/op | |
WorkloadResult 34: 33554432 op, 570533400.00 ns, 17.0032 ns/op | |
WorkloadResult 35: 33554432 op, 570115900.00 ns, 16.9908 ns/op | |
WorkloadResult 36: 33554432 op, 572129500.00 ns, 17.0508 ns/op | |
WorkloadResult 37: 33554432 op, 649885300.00 ns, 19.3681 ns/op | |
WorkloadResult 38: 33554432 op, 657519200.00 ns, 19.5956 ns/op | |
WorkloadResult 39: 33554432 op, 717849700.00 ns, 21.3936 ns/op | |
WorkloadResult 40: 33554432 op, 674999800.00 ns, 20.1166 ns/op | |
WorkloadResult 41: 33554432 op, 658760300.00 ns, 19.6326 ns/op | |
WorkloadResult 42: 33554432 op, 708433900.00 ns, 21.1130 ns/op | |
WorkloadResult 43: 33554432 op, 647419800.00 ns, 19.2946 ns/op | |
WorkloadResult 44: 33554432 op, 693715700.00 ns, 20.6743 ns/op | |
WorkloadResult 45: 33554432 op, 673323800.00 ns, 20.0666 ns/op | |
WorkloadResult 46: 33554432 op, 663042500.00 ns, 19.7602 ns/op | |
WorkloadResult 47: 33554432 op, 641256800.00 ns, 19.1109 ns/op | |
WorkloadResult 48: 33554432 op, 763264800.00 ns, 22.7471 ns/op | |
WorkloadResult 49: 33554432 op, 739081500.00 ns, 22.0263 ns/op | |
WorkloadResult 50: 33554432 op, 705243500.00 ns, 21.0179 ns/op | |
WorkloadResult 51: 33554432 op, 725991300.00 ns, 21.6362 ns/op | |
WorkloadResult 52: 33554432 op, 677126300.00 ns, 20.1799 ns/op | |
WorkloadResult 53: 33554432 op, 783564100.00 ns, 23.3520 ns/op | |
WorkloadResult 54: 33554432 op, 765344200.00 ns, 22.8090 ns/op | |
WorkloadResult 55: 33554432 op, 680620600.00 ns, 20.2841 ns/op | |
WorkloadResult 56: 33554432 op, 695680800.00 ns, 20.7329 ns/op | |
WorkloadResult 57: 33554432 op, 684571700.00 ns, 20.4018 ns/op | |
WorkloadResult 58: 33554432 op, 738441200.00 ns, 22.0073 ns/op | |
WorkloadResult 59: 33554432 op, 679910300.00 ns, 20.2629 ns/op | |
WorkloadResult 60: 33554432 op, 583113100.00 ns, 17.3781 ns/op | |
WorkloadResult 61: 33554432 op, 630838000.00 ns, 18.8004 ns/op | |
WorkloadResult 62: 33554432 op, 675984400.00 ns, 20.1459 ns/op | |
WorkloadResult 63: 33554432 op, 644846600.00 ns, 19.2179 ns/op | |
WorkloadResult 64: 33554432 op, 679475600.00 ns, 20.2500 ns/op | |
WorkloadResult 65: 33554432 op, 655144800.00 ns, 19.5248 ns/op | |
WorkloadResult 66: 33554432 op, 714416300.00 ns, 21.2913 ns/op | |
WorkloadResult 67: 33554432 op, 677939300.00 ns, 20.2042 ns/op | |
WorkloadResult 68: 33554432 op, 665438100.00 ns, 19.8316 ns/op | |
WorkloadResult 69: 33554432 op, 659126600.00 ns, 19.6435 ns/op | |
WorkloadResult 70: 33554432 op, 761271700.00 ns, 22.6877 ns/op | |
WorkloadResult 71: 33554432 op, 724318700.00 ns, 21.5864 ns/op | |
WorkloadResult 72: 33554432 op, 772266200.00 ns, 23.0153 ns/op | |
WorkloadResult 73: 33554432 op, 704786900.00 ns, 21.0043 ns/op | |
WorkloadResult 74: 33554432 op, 638395200.00 ns, 19.0257 ns/op | |
WorkloadResult 75: 33554432 op, 673678900.00 ns, 20.0772 ns/op | |
WorkloadResult 76: 33554432 op, 803336100.00 ns, 23.9413 ns/op | |
WorkloadResult 77: 33554432 op, 750349200.00 ns, 22.3621 ns/op | |
WorkloadResult 78: 33554432 op, 819532900.00 ns, 24.4240 ns/op | |
WorkloadResult 79: 33554432 op, 819911600.00 ns, 24.4353 ns/op | |
WorkloadResult 80: 33554432 op, 821557500.00 ns, 24.4843 ns/op | |
WorkloadResult 81: 33554432 op, 682995100.00 ns, 20.3548 ns/op | |
WorkloadResult 82: 33554432 op, 741210900.00 ns, 22.0898 ns/op | |
WorkloadResult 83: 33554432 op, 698296600.00 ns, 20.8109 ns/op | |
WorkloadResult 84: 33554432 op, 669480400.00 ns, 19.9521 ns/op | |
WorkloadResult 85: 33554432 op, 565630800.00 ns, 16.8571 ns/op | |
WorkloadResult 86: 33554432 op, 823754400.00 ns, 24.5498 ns/op | |
WorkloadResult 87: 33554432 op, 818860100.00 ns, 24.4039 ns/op | |
WorkloadResult 88: 33554432 op, 683031400.00 ns, 20.3559 ns/op | |
WorkloadResult 89: 33554432 op, 785234500.00 ns, 23.4018 ns/op | |
WorkloadResult 90: 33554432 op, 708692800.00 ns, 21.1207 ns/op | |
WorkloadResult 91: 33554432 op, 753847400.00 ns, 22.4664 ns/op | |
WorkloadResult 92: 33554432 op, 674759700.00 ns, 20.1094 ns/op | |
WorkloadResult 93: 33554432 op, 662194900.00 ns, 19.7349 ns/op | |
WorkloadResult 94: 33554432 op, 655307300.00 ns, 19.5297 ns/op | |
WorkloadResult 95: 33554432 op, 774852700.00 ns, 23.0924 ns/op | |
WorkloadResult 96: 33554432 op, 788381700.00 ns, 23.4956 ns/op | |
WorkloadResult 97: 33554432 op, 773767400.00 ns, 23.0601 ns/op | |
WorkloadResult 98: 33554432 op, 736341400.00 ns, 21.9447 ns/op | |
WorkloadResult 99: 33554432 op, 730694500.00 ns, 21.7764 ns/op | |
WorkloadResult 100: 33554432 op, 785566800.00 ns, 23.4117 ns/op | |
GC: 342 0 0 1073741824 33554432 | |
Threading: 2 0 33554432 | |
// AfterAll | |
// Benchmark Process 8176 has exited with code 0 | |
Mean = 20.959 ns, StdErr = 0.190 ns (0.90%), N = 100, StdDev = 1.896 ns | |
Min = 16.757 ns, Q1 = 19.623 ns, Median = 20.772 ns, Q3 = 22.470 ns, Max = 24.550 ns | |
IQR = 2.846 ns, LowerFence = 15.354 ns, UpperFence = 26.739 ns | |
ConfidenceInterval = [20.316 ns; 21.602 ns] (CI 99.9%), Margin = 0.643 ns (3.07% of Mean) | |
Skewness = -0.06, Kurtosis = 2.44, MValue = 2.85 | |
// ************************** | |
// Benchmark: RankTests.Rank: DefaultJob [n=45, k=6, kCombination=Int32[6]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "45ee11c8-1f85-49bd-9a64-9c03db6b4199.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.RankTests.Rank(n: 45, k: 6, kCombination: [11, 16, 23, 34, 42, ...])" --job "Default" --benchmarkId 2 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 365900.00 ns, 365.9000 us/op | |
WorkloadJitting 1: 1 op, 2056400.00 ns, 2.0564 ms/op | |
OverheadJitting 2: 16 op, 822000.00 ns, 51.3750 us/op | |
WorkloadJitting 2: 16 op, 894400.00 ns, 55.9000 us/op | |
WorkloadPilot 1: 16 op, 5200.00 ns, 325.0000 ns/op | |
WorkloadPilot 2: 32 op, 4200.00 ns, 131.2500 ns/op | |
WorkloadPilot 3: 64 op, 5400.00 ns, 84.3750 ns/op | |
WorkloadPilot 4: 128 op, 9100.00 ns, 71.0938 ns/op | |
WorkloadPilot 5: 256 op, 19400.00 ns, 75.7812 ns/op | |
WorkloadPilot 6: 512 op, 32100.00 ns, 62.6953 ns/op | |
WorkloadPilot 7: 1024 op, 63600.00 ns, 62.1094 ns/op | |
WorkloadPilot 8: 2048 op, 122000.00 ns, 59.5703 ns/op | |
WorkloadPilot 9: 4096 op, 290500.00 ns, 70.9229 ns/op | |
WorkloadPilot 10: 8192 op, 594600.00 ns, 72.5830 ns/op | |
WorkloadPilot 11: 16384 op, 1359600.00 ns, 82.9834 ns/op | |
WorkloadPilot 12: 32768 op, 2657700.00 ns, 81.1066 ns/op | |
WorkloadPilot 13: 65536 op, 4659300.00 ns, 71.0953 ns/op | |
WorkloadPilot 14: 131072 op, 10487700.00 ns, 80.0148 ns/op | |
WorkloadPilot 15: 262144 op, 17045700.00 ns, 65.0242 ns/op | |
WorkloadPilot 16: 524288 op, 33459600.00 ns, 63.8191 ns/op | |
WorkloadPilot 17: 1048576 op, 64377300.00 ns, 61.3950 ns/op | |
WorkloadPilot 18: 2097152 op, 129418000.00 ns, 61.7113 ns/op | |
WorkloadPilot 19: 4194304 op, 316398900.00 ns, 75.4354 ns/op | |
WorkloadPilot 20: 8388608 op, 570606100.00 ns, 68.0215 ns/op | |
OverheadWarmup 1: 8388608 op, 13013000.00 ns, 1.5513 ns/op | |
OverheadWarmup 2: 8388608 op, 13213100.00 ns, 1.5751 ns/op | |
OverheadWarmup 3: 8388608 op, 12869600.00 ns, 1.5342 ns/op | |
OverheadWarmup 4: 8388608 op, 13657900.00 ns, 1.6281 ns/op | |
OverheadWarmup 5: 8388608 op, 13315000.00 ns, 1.5873 ns/op | |
OverheadActual 1: 8388608 op, 13588900.00 ns, 1.6199 ns/op | |
OverheadActual 2: 8388608 op, 13459000.00 ns, 1.6044 ns/op | |
OverheadActual 3: 8388608 op, 13032200.00 ns, 1.5536 ns/op | |
OverheadActual 4: 8388608 op, 13809300.00 ns, 1.6462 ns/op | |
OverheadActual 5: 8388608 op, 12916400.00 ns, 1.5398 ns/op | |
OverheadActual 6: 8388608 op, 13405100.00 ns, 1.5980 ns/op | |
OverheadActual 7: 8388608 op, 14263600.00 ns, 1.7004 ns/op | |
OverheadActual 8: 8388608 op, 13710700.00 ns, 1.6344 ns/op | |
OverheadActual 9: 8388608 op, 13530200.00 ns, 1.6129 ns/op | |
OverheadActual 10: 8388608 op, 12432700.00 ns, 1.4821 ns/op | |
OverheadActual 11: 8388608 op, 13438900.00 ns, 1.6020 ns/op | |
OverheadActual 12: 8388608 op, 13790500.00 ns, 1.6440 ns/op | |
OverheadActual 13: 8388608 op, 13547500.00 ns, 1.6150 ns/op | |
OverheadActual 14: 8388608 op, 13339400.00 ns, 1.5902 ns/op | |
OverheadActual 15: 8388608 op, 12770900.00 ns, 1.5224 ns/op | |
WorkloadWarmup 1: 8388608 op, 627579900.00 ns, 74.8134 ns/op | |
WorkloadWarmup 2: 8388608 op, 572327200.00 ns, 68.2267 ns/op | |
WorkloadWarmup 3: 8388608 op, 610448500.00 ns, 72.7711 ns/op | |
WorkloadWarmup 4: 8388608 op, 594790800.00 ns, 70.9046 ns/op | |
WorkloadWarmup 5: 8388608 op, 587834100.00 ns, 70.0753 ns/op | |
WorkloadWarmup 6: 8388608 op, 566589300.00 ns, 67.5427 ns/op | |
WorkloadWarmup 7: 8388608 op, 608915100.00 ns, 72.5883 ns/op | |
WorkloadWarmup 8: 8388608 op, 588403600.00 ns, 70.1432 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 8388608 op, 581242000.00 ns, 69.2894 ns/op | |
WorkloadActual 2: 8388608 op, 596830200.00 ns, 71.1477 ns/op | |
WorkloadActual 3: 8388608 op, 644552400.00 ns, 76.8366 ns/op | |
WorkloadActual 4: 8388608 op, 588938500.00 ns, 70.2069 ns/op | |
WorkloadActual 5: 8388608 op, 548653700.00 ns, 65.4046 ns/op | |
WorkloadActual 6: 8388608 op, 586159600.00 ns, 69.8757 ns/op | |
WorkloadActual 7: 8388608 op, 578941900.00 ns, 69.0153 ns/op | |
WorkloadActual 8: 8388608 op, 578268400.00 ns, 68.9350 ns/op | |
WorkloadActual 9: 8388608 op, 596659800.00 ns, 71.1274 ns/op | |
WorkloadActual 10: 8388608 op, 650449100.00 ns, 77.5396 ns/op | |
WorkloadActual 11: 8388608 op, 588266700.00 ns, 70.1269 ns/op | |
WorkloadActual 12: 8388608 op, 594087900.00 ns, 70.8208 ns/op | |
WorkloadActual 13: 8388608 op, 607513800.00 ns, 72.4213 ns/op | |
WorkloadActual 14: 8388608 op, 567979900.00 ns, 67.7085 ns/op | |
WorkloadActual 15: 8388608 op, 601092900.00 ns, 71.6559 ns/op | |
WorkloadActual 16: 8388608 op, 594766100.00 ns, 70.9016 ns/op | |
WorkloadActual 17: 8388608 op, 578093200.00 ns, 68.9141 ns/op | |
WorkloadActual 18: 8388608 op, 606270000.00 ns, 72.2730 ns/op | |
WorkloadActual 19: 8388608 op, 572948800.00 ns, 68.3008 ns/op | |
WorkloadActual 20: 8388608 op, 597020100.00 ns, 71.1703 ns/op | |
WorkloadActual 21: 8388608 op, 591880500.00 ns, 70.5577 ns/op | |
WorkloadActual 22: 8388608 op, 591471600.00 ns, 70.5089 ns/op | |
WorkloadActual 23: 8388608 op, 583234300.00 ns, 69.5269 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 8388608 op, 567783000.00 ns, 67.6850 ns/op | |
WorkloadResult 2: 8388608 op, 583371200.00 ns, 69.5433 ns/op | |
WorkloadResult 3: 8388608 op, 575479500.00 ns, 68.6025 ns/op | |
WorkloadResult 4: 8388608 op, 535194700.00 ns, 63.8002 ns/op | |
WorkloadResult 5: 8388608 op, 572700600.00 ns, 68.2712 ns/op | |
WorkloadResult 6: 8388608 op, 565482900.00 ns, 67.4108 ns/op | |
WorkloadResult 7: 8388608 op, 564809400.00 ns, 67.3305 ns/op | |
WorkloadResult 8: 8388608 op, 583200800.00 ns, 69.5230 ns/op | |
WorkloadResult 9: 8388608 op, 574807700.00 ns, 68.5224 ns/op | |
WorkloadResult 10: 8388608 op, 580628900.00 ns, 69.2164 ns/op | |
WorkloadResult 11: 8388608 op, 594054800.00 ns, 70.8169 ns/op | |
WorkloadResult 12: 8388608 op, 554520900.00 ns, 66.1040 ns/op | |
WorkloadResult 13: 8388608 op, 587633900.00 ns, 70.0514 ns/op | |
WorkloadResult 14: 8388608 op, 581307100.00 ns, 69.2972 ns/op | |
WorkloadResult 15: 8388608 op, 564634200.00 ns, 67.3096 ns/op | |
WorkloadResult 16: 8388608 op, 592811000.00 ns, 70.6686 ns/op | |
WorkloadResult 17: 8388608 op, 559489800.00 ns, 66.6964 ns/op | |
WorkloadResult 18: 8388608 op, 583561100.00 ns, 69.5659 ns/op | |
WorkloadResult 19: 8388608 op, 578421500.00 ns, 68.9532 ns/op | |
WorkloadResult 20: 8388608 op, 578012600.00 ns, 68.9045 ns/op | |
WorkloadResult 21: 8388608 op, 569775300.00 ns, 67.9225 ns/op | |
GC: 213 0 0 671088640 8388608 | |
Threading: 2 0 8388608 | |
// AfterAll | |
// Benchmark Process 15624 has exited with code 0 | |
Mean = 68.390 ns, StdErr = 0.356 ns (0.52%), N = 21, StdDev = 1.630 ns | |
Min = 63.800 ns, Q1 = 67.411 ns, Median = 68.603 ns, Q3 = 69.523 ns, Max = 70.817 ns | |
IQR = 2.112 ns, LowerFence = 64.243 ns, UpperFence = 72.691 ns | |
ConfidenceInterval = [67.021 ns; 69.759 ns] (CI 99.9%), Margin = 1.369 ns (2.00% of Mean) | |
Skewness = -0.88, Kurtosis = 3.77, MValue = 2 | |
// ************************** | |
// Benchmark: RankTests.FastRank: DefaultJob [n=45, k=6, kCombination=Int32[6]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "45ee11c8-1f85-49bd-9a64-9c03db6b4199.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.RankTests.FastRank(n: 45, k: 6, kCombination: [11, 16, 23, 34, 42, ...])" --job "Default" --benchmarkId 3 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 355000.00 ns, 355.0000 us/op | |
WorkloadJitting 1: 1 op, 2058000.00 ns, 2.0580 ms/op | |
OverheadJitting 2: 16 op, 616100.00 ns, 38.5063 us/op | |
WorkloadJitting 2: 16 op, 1017400.00 ns, 63.5875 us/op | |
WorkloadPilot 1: 16 op, 3700.00 ns, 231.2500 ns/op | |
WorkloadPilot 2: 32 op, 2300.00 ns, 71.8750 ns/op | |
WorkloadPilot 3: 64 op, 4100.00 ns, 64.0625 ns/op | |
WorkloadPilot 4: 128 op, 5800.00 ns, 45.3125 ns/op | |
WorkloadPilot 5: 256 op, 15300.00 ns, 59.7656 ns/op | |
WorkloadPilot 6: 512 op, 22400.00 ns, 43.7500 ns/op | |
WorkloadPilot 7: 1024 op, 38800.00 ns, 37.8906 ns/op | |
WorkloadPilot 8: 2048 op, 104700.00 ns, 51.1230 ns/op | |
WorkloadPilot 9: 4096 op, 183500.00 ns, 44.7998 ns/op | |
WorkloadPilot 10: 8192 op, 327800.00 ns, 40.0146 ns/op | |
WorkloadPilot 11: 16384 op, 710300.00 ns, 43.3533 ns/op | |
WorkloadPilot 12: 32768 op, 1405300.00 ns, 42.8864 ns/op | |
WorkloadPilot 13: 65536 op, 2884000.00 ns, 44.0063 ns/op | |
WorkloadPilot 14: 131072 op, 6056500.00 ns, 46.2074 ns/op | |
WorkloadPilot 15: 262144 op, 10311700.00 ns, 39.3360 ns/op | |
WorkloadPilot 16: 524288 op, 21408300.00 ns, 40.8331 ns/op | |
WorkloadPilot 17: 1048576 op, 40503600.00 ns, 38.6272 ns/op | |
WorkloadPilot 18: 2097152 op, 81693200.00 ns, 38.9544 ns/op | |
WorkloadPilot 19: 4194304 op, 170953600.00 ns, 40.7585 ns/op | |
WorkloadPilot 20: 8388608 op, 351434100.00 ns, 41.8942 ns/op | |
WorkloadPilot 21: 16777216 op, 720303000.00 ns, 42.9334 ns/op | |
OverheadWarmup 1: 16777216 op, 27786200.00 ns, 1.6562 ns/op | |
OverheadWarmup 2: 16777216 op, 25512100.00 ns, 1.5206 ns/op | |
OverheadWarmup 3: 16777216 op, 26006700.00 ns, 1.5501 ns/op | |
OverheadWarmup 4: 16777216 op, 26124600.00 ns, 1.5571 ns/op | |
OverheadWarmup 5: 16777216 op, 26241500.00 ns, 1.5641 ns/op | |
OverheadWarmup 6: 16777216 op, 26216200.00 ns, 1.5626 ns/op | |
OverheadWarmup 7: 16777216 op, 25994100.00 ns, 1.5494 ns/op | |
OverheadWarmup 8: 16777216 op, 26596100.00 ns, 1.5853 ns/op | |
OverheadWarmup 9: 16777216 op, 25710200.00 ns, 1.5324 ns/op | |
OverheadActual 1: 16777216 op, 26726600.00 ns, 1.5930 ns/op | |
OverheadActual 2: 16777216 op, 26438800.00 ns, 1.5759 ns/op | |
OverheadActual 3: 16777216 op, 25732900.00 ns, 1.5338 ns/op | |
OverheadActual 4: 16777216 op, 28904800.00 ns, 1.7229 ns/op | |
OverheadActual 5: 16777216 op, 27660200.00 ns, 1.6487 ns/op | |
OverheadActual 6: 16777216 op, 26092600.00 ns, 1.5552 ns/op | |
OverheadActual 7: 16777216 op, 26062400.00 ns, 1.5534 ns/op | |
OverheadActual 8: 16777216 op, 26225500.00 ns, 1.5632 ns/op | |
OverheadActual 9: 16777216 op, 26529700.00 ns, 1.5813 ns/op | |
OverheadActual 10: 16777216 op, 26436000.00 ns, 1.5757 ns/op | |
OverheadActual 11: 16777216 op, 27637400.00 ns, 1.6473 ns/op | |
OverheadActual 12: 16777216 op, 24890000.00 ns, 1.4836 ns/op | |
OverheadActual 13: 16777216 op, 24776600.00 ns, 1.4768 ns/op | |
OverheadActual 14: 16777216 op, 24860200.00 ns, 1.4818 ns/op | |
OverheadActual 15: 16777216 op, 24552800.00 ns, 1.4635 ns/op | |
WorkloadWarmup 1: 16777216 op, 713775700.00 ns, 42.5443 ns/op | |
WorkloadWarmup 2: 16777216 op, 758247600.00 ns, 45.1951 ns/op | |
WorkloadWarmup 3: 16777216 op, 753507900.00 ns, 44.9126 ns/op | |
WorkloadWarmup 4: 16777216 op, 739249000.00 ns, 44.0627 ns/op | |
WorkloadWarmup 5: 16777216 op, 712706400.00 ns, 42.4806 ns/op | |
WorkloadWarmup 6: 16777216 op, 740007000.00 ns, 44.1079 ns/op | |
WorkloadWarmup 7: 16777216 op, 712655600.00 ns, 42.4776 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 732126800.00 ns, 43.6382 ns/op | |
WorkloadActual 2: 16777216 op, 802449600.00 ns, 47.8297 ns/op | |
WorkloadActual 3: 16777216 op, 758647100.00 ns, 45.2189 ns/op | |
WorkloadActual 4: 16777216 op, 765736100.00 ns, 45.6414 ns/op | |
WorkloadActual 5: 16777216 op, 836131000.00 ns, 49.8373 ns/op | |
WorkloadActual 6: 16777216 op, 842832600.00 ns, 50.2367 ns/op | |
WorkloadActual 7: 16777216 op, 737226900.00 ns, 43.9421 ns/op | |
WorkloadActual 8: 16777216 op, 846581600.00 ns, 50.4602 ns/op | |
WorkloadActual 9: 16777216 op, 810763600.00 ns, 48.3253 ns/op | |
WorkloadActual 10: 16777216 op, 848069100.00 ns, 50.5489 ns/op | |
WorkloadActual 11: 16777216 op, 826033400.00 ns, 49.2354 ns/op | |
WorkloadActual 12: 16777216 op, 810276200.00 ns, 48.2962 ns/op | |
WorkloadActual 13: 16777216 op, 830414700.00 ns, 49.4966 ns/op | |
WorkloadActual 14: 16777216 op, 713076700.00 ns, 42.5027 ns/op | |
WorkloadActual 15: 16777216 op, 854827700.00 ns, 50.9517 ns/op | |
WorkloadActual 16: 16777216 op, 832590900.00 ns, 49.6263 ns/op | |
WorkloadActual 17: 16777216 op, 709685100.00 ns, 42.3005 ns/op | |
WorkloadActual 18: 16777216 op, 648470600.00 ns, 38.6519 ns/op | |
WorkloadActual 19: 16777216 op, 703838400.00 ns, 41.9520 ns/op | |
WorkloadActual 20: 16777216 op, 784902600.00 ns, 46.7838 ns/op | |
WorkloadActual 21: 16777216 op, 853599200.00 ns, 50.8785 ns/op | |
WorkloadActual 22: 16777216 op, 852136400.00 ns, 50.7913 ns/op | |
WorkloadActual 23: 16777216 op, 732500000.00 ns, 43.6604 ns/op | |
WorkloadActual 24: 16777216 op, 738750500.00 ns, 44.0330 ns/op | |
WorkloadActual 25: 16777216 op, 851121400.00 ns, 50.7308 ns/op | |
WorkloadActual 26: 16777216 op, 727211300.00 ns, 43.3452 ns/op | |
WorkloadActual 27: 16777216 op, 836599100.00 ns, 49.8652 ns/op | |
WorkloadActual 28: 16777216 op, 821162800.00 ns, 48.9451 ns/op | |
WorkloadActual 29: 16777216 op, 744107400.00 ns, 44.3523 ns/op | |
WorkloadActual 30: 16777216 op, 811702200.00 ns, 48.3812 ns/op | |
WorkloadActual 31: 16777216 op, 818184900.00 ns, 48.7676 ns/op | |
WorkloadActual 32: 16777216 op, 845311000.00 ns, 50.3845 ns/op | |
WorkloadActual 33: 16777216 op, 744053000.00 ns, 44.3490 ns/op | |
WorkloadActual 34: 16777216 op, 640583000.00 ns, 38.1817 ns/op | |
WorkloadActual 35: 16777216 op, 622670200.00 ns, 37.1140 ns/op | |
WorkloadActual 36: 16777216 op, 618088600.00 ns, 36.8410 ns/op | |
WorkloadActual 37: 16777216 op, 643828800.00 ns, 38.3752 ns/op | |
WorkloadActual 38: 16777216 op, 614649700.00 ns, 36.6360 ns/op | |
WorkloadActual 39: 16777216 op, 605541800.00 ns, 36.0931 ns/op | |
WorkloadActual 40: 16777216 op, 609925300.00 ns, 36.3544 ns/op | |
WorkloadActual 41: 16777216 op, 611538800.00 ns, 36.4506 ns/op | |
WorkloadActual 42: 16777216 op, 617094000.00 ns, 36.7817 ns/op | |
WorkloadActual 43: 16777216 op, 607674600.00 ns, 36.2202 ns/op | |
WorkloadActual 44: 16777216 op, 619813000.00 ns, 36.9437 ns/op | |
WorkloadActual 45: 16777216 op, 746721100.00 ns, 44.5080 ns/op | |
WorkloadActual 46: 16777216 op, 670158000.00 ns, 39.9445 ns/op | |
WorkloadActual 47: 16777216 op, 806764100.00 ns, 48.0869 ns/op | |
WorkloadActual 48: 16777216 op, 645482600.00 ns, 38.4738 ns/op | |
WorkloadActual 49: 16777216 op, 669794500.00 ns, 39.9229 ns/op | |
WorkloadActual 50: 16777216 op, 756066900.00 ns, 45.0651 ns/op | |
WorkloadActual 51: 16777216 op, 682944600.00 ns, 40.7067 ns/op | |
WorkloadActual 52: 16777216 op, 816130900.00 ns, 48.6452 ns/op | |
WorkloadActual 53: 16777216 op, 837159700.00 ns, 49.8986 ns/op | |
WorkloadActual 54: 16777216 op, 734890000.00 ns, 43.8029 ns/op | |
WorkloadActual 55: 16777216 op, 810223500.00 ns, 48.2931 ns/op | |
WorkloadActual 56: 16777216 op, 740484200.00 ns, 44.1363 ns/op | |
WorkloadActual 57: 16777216 op, 716583400.00 ns, 42.7117 ns/op | |
WorkloadActual 58: 16777216 op, 840658500.00 ns, 50.1072 ns/op | |
WorkloadActual 59: 16777216 op, 742116800.00 ns, 44.2336 ns/op | |
WorkloadActual 60: 16777216 op, 785025400.00 ns, 46.7912 ns/op | |
WorkloadActual 61: 16777216 op, 735003300.00 ns, 43.8096 ns/op | |
WorkloadActual 62: 16777216 op, 817889800.00 ns, 48.7500 ns/op | |
WorkloadActual 63: 16777216 op, 718019100.00 ns, 42.7973 ns/op | |
WorkloadActual 64: 16777216 op, 723564900.00 ns, 43.1278 ns/op | |
WorkloadActual 65: 16777216 op, 715088700.00 ns, 42.6226 ns/op | |
WorkloadActual 66: 16777216 op, 743232200.00 ns, 44.3001 ns/op | |
WorkloadActual 67: 16777216 op, 735197300.00 ns, 43.8212 ns/op | |
WorkloadActual 68: 16777216 op, 703657600.00 ns, 41.9413 ns/op | |
WorkloadActual 69: 16777216 op, 726350100.00 ns, 43.2938 ns/op | |
WorkloadActual 70: 16777216 op, 850692000.00 ns, 50.7052 ns/op | |
WorkloadActual 71: 16777216 op, 729382000.00 ns, 43.4746 ns/op | |
WorkloadActual 72: 16777216 op, 735809800.00 ns, 43.8577 ns/op | |
WorkloadActual 73: 16777216 op, 726347400.00 ns, 43.2937 ns/op | |
WorkloadActual 74: 16777216 op, 729926900.00 ns, 43.5070 ns/op | |
WorkloadActual 75: 16777216 op, 822516000.00 ns, 49.0258 ns/op | |
WorkloadActual 76: 16777216 op, 688452200.00 ns, 41.0349 ns/op | |
WorkloadActual 77: 16777216 op, 720104700.00 ns, 42.9216 ns/op | |
WorkloadActual 78: 16777216 op, 824136100.00 ns, 49.1223 ns/op | |
WorkloadActual 79: 16777216 op, 706394700.00 ns, 42.1044 ns/op | |
WorkloadActual 80: 16777216 op, 836172900.00 ns, 49.8398 ns/op | |
WorkloadActual 81: 16777216 op, 737524400.00 ns, 43.9599 ns/op | |
WorkloadActual 82: 16777216 op, 819703100.00 ns, 48.8581 ns/op | |
WorkloadActual 83: 16777216 op, 651674600.00 ns, 38.8428 ns/op | |
WorkloadActual 84: 16777216 op, 610856300.00 ns, 36.4099 ns/op | |
WorkloadActual 85: 16777216 op, 724452200.00 ns, 43.1807 ns/op | |
WorkloadActual 86: 16777216 op, 773611400.00 ns, 46.1108 ns/op | |
WorkloadActual 87: 16777216 op, 754489500.00 ns, 44.9711 ns/op | |
WorkloadActual 88: 16777216 op, 743933100.00 ns, 44.3419 ns/op | |
WorkloadActual 89: 16777216 op, 752007800.00 ns, 44.8232 ns/op | |
WorkloadActual 90: 16777216 op, 731124300.00 ns, 43.5784 ns/op | |
WorkloadActual 91: 16777216 op, 754088400.00 ns, 44.9472 ns/op | |
WorkloadActual 92: 16777216 op, 752908700.00 ns, 44.8769 ns/op | |
WorkloadActual 93: 16777216 op, 821309600.00 ns, 48.9539 ns/op | |
WorkloadActual 94: 16777216 op, 739635400.00 ns, 44.0857 ns/op | |
WorkloadActual 95: 16777216 op, 810484500.00 ns, 48.3086 ns/op | |
WorkloadActual 96: 16777216 op, 843108400.00 ns, 50.2532 ns/op | |
WorkloadActual 97: 16777216 op, 760126600.00 ns, 45.3071 ns/op | |
WorkloadActual 98: 16777216 op, 759377000.00 ns, 45.2624 ns/op | |
WorkloadActual 99: 16777216 op, 801817900.00 ns, 47.7921 ns/op | |
WorkloadActual 100: 16777216 op, 827806200.00 ns, 49.3411 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 705901300.00 ns, 42.0750 ns/op | |
WorkloadResult 2: 16777216 op, 776224100.00 ns, 46.2666 ns/op | |
WorkloadResult 3: 16777216 op, 732421600.00 ns, 43.6557 ns/op | |
WorkloadResult 4: 16777216 op, 739510600.00 ns, 44.0783 ns/op | |
WorkloadResult 5: 16777216 op, 809905500.00 ns, 48.2741 ns/op | |
WorkloadResult 6: 16777216 op, 816607100.00 ns, 48.6736 ns/op | |
WorkloadResult 7: 16777216 op, 711001400.00 ns, 42.3790 ns/op | |
WorkloadResult 8: 16777216 op, 820356100.00 ns, 48.8970 ns/op | |
WorkloadResult 9: 16777216 op, 784538100.00 ns, 46.7621 ns/op | |
WorkloadResult 10: 16777216 op, 821843600.00 ns, 48.9857 ns/op | |
WorkloadResult 11: 16777216 op, 799807900.00 ns, 47.6723 ns/op | |
WorkloadResult 12: 16777216 op, 784050700.00 ns, 46.7331 ns/op | |
WorkloadResult 13: 16777216 op, 804189200.00 ns, 47.9334 ns/op | |
WorkloadResult 14: 16777216 op, 686851200.00 ns, 40.9395 ns/op | |
WorkloadResult 15: 16777216 op, 828602200.00 ns, 49.3885 ns/op | |
WorkloadResult 16: 16777216 op, 806365400.00 ns, 48.0631 ns/op | |
WorkloadResult 17: 16777216 op, 683459600.00 ns, 40.7374 ns/op | |
WorkloadResult 18: 16777216 op, 622245100.00 ns, 37.0887 ns/op | |
WorkloadResult 19: 16777216 op, 677612900.00 ns, 40.3889 ns/op | |
WorkloadResult 20: 16777216 op, 758677100.00 ns, 45.2207 ns/op | |
WorkloadResult 21: 16777216 op, 827373700.00 ns, 49.3153 ns/op | |
WorkloadResult 22: 16777216 op, 825910900.00 ns, 49.2281 ns/op | |
WorkloadResult 23: 16777216 op, 706274500.00 ns, 42.0972 ns/op | |
WorkloadResult 24: 16777216 op, 712525000.00 ns, 42.4698 ns/op | |
WorkloadResult 25: 16777216 op, 824895900.00 ns, 49.1676 ns/op | |
WorkloadResult 26: 16777216 op, 700985800.00 ns, 41.7820 ns/op | |
WorkloadResult 27: 16777216 op, 810373600.00 ns, 48.3020 ns/op | |
WorkloadResult 28: 16777216 op, 794937300.00 ns, 47.3820 ns/op | |
WorkloadResult 29: 16777216 op, 717881900.00 ns, 42.7891 ns/op | |
WorkloadResult 30: 16777216 op, 785476700.00 ns, 46.8181 ns/op | |
WorkloadResult 31: 16777216 op, 791959400.00 ns, 47.2045 ns/op | |
WorkloadResult 32: 16777216 op, 819085500.00 ns, 48.8213 ns/op | |
WorkloadResult 33: 16777216 op, 717827500.00 ns, 42.7859 ns/op | |
WorkloadResult 34: 16777216 op, 614357500.00 ns, 36.6186 ns/op | |
WorkloadResult 35: 16777216 op, 596444700.00 ns, 35.5509 ns/op | |
WorkloadResult 36: 16777216 op, 591863100.00 ns, 35.2778 ns/op | |
WorkloadResult 37: 16777216 op, 617603300.00 ns, 36.8120 ns/op | |
WorkloadResult 38: 16777216 op, 588424200.00 ns, 35.0728 ns/op | |
WorkloadResult 39: 16777216 op, 579316300.00 ns, 34.5299 ns/op | |
WorkloadResult 40: 16777216 op, 583699800.00 ns, 34.7912 ns/op | |
WorkloadResult 41: 16777216 op, 585313300.00 ns, 34.8874 ns/op | |
WorkloadResult 42: 16777216 op, 590868500.00 ns, 35.2185 ns/op | |
WorkloadResult 43: 16777216 op, 581449100.00 ns, 34.6571 ns/op | |
WorkloadResult 44: 16777216 op, 593587500.00 ns, 35.3806 ns/op | |
WorkloadResult 45: 16777216 op, 720495600.00 ns, 42.9449 ns/op | |
WorkloadResult 46: 16777216 op, 643932500.00 ns, 38.3814 ns/op | |
WorkloadResult 47: 16777216 op, 780538600.00 ns, 46.5237 ns/op | |
WorkloadResult 48: 16777216 op, 619257100.00 ns, 36.9106 ns/op | |
WorkloadResult 49: 16777216 op, 643569000.00 ns, 38.3597 ns/op | |
WorkloadResult 50: 16777216 op, 729841400.00 ns, 43.5019 ns/op | |
WorkloadResult 51: 16777216 op, 656719100.00 ns, 39.1435 ns/op | |
WorkloadResult 52: 16777216 op, 789905400.00 ns, 47.0820 ns/op | |
WorkloadResult 53: 16777216 op, 810934200.00 ns, 48.3354 ns/op | |
WorkloadResult 54: 16777216 op, 708664500.00 ns, 42.2397 ns/op | |
WorkloadResult 55: 16777216 op, 783998000.00 ns, 46.7299 ns/op | |
WorkloadResult 56: 16777216 op, 714258700.00 ns, 42.5731 ns/op | |
WorkloadResult 57: 16777216 op, 690357900.00 ns, 41.1485 ns/op | |
WorkloadResult 58: 16777216 op, 814433000.00 ns, 48.5440 ns/op | |
WorkloadResult 59: 16777216 op, 715891300.00 ns, 42.6704 ns/op | |
WorkloadResult 60: 16777216 op, 758799900.00 ns, 45.2280 ns/op | |
WorkloadResult 61: 16777216 op, 708777800.00 ns, 42.2464 ns/op | |
WorkloadResult 62: 16777216 op, 791664300.00 ns, 47.1869 ns/op | |
WorkloadResult 63: 16777216 op, 691793600.00 ns, 41.2341 ns/op | |
WorkloadResult 64: 16777216 op, 697339400.00 ns, 41.5647 ns/op | |
WorkloadResult 65: 16777216 op, 688863200.00 ns, 41.0594 ns/op | |
WorkloadResult 66: 16777216 op, 717006700.00 ns, 42.7369 ns/op | |
WorkloadResult 67: 16777216 op, 708971800.00 ns, 42.2580 ns/op | |
WorkloadResult 68: 16777216 op, 677432100.00 ns, 40.3781 ns/op | |
WorkloadResult 69: 16777216 op, 700124600.00 ns, 41.7307 ns/op | |
WorkloadResult 70: 16777216 op, 824466500.00 ns, 49.1420 ns/op | |
WorkloadResult 71: 16777216 op, 703156500.00 ns, 41.9114 ns/op | |
WorkloadResult 72: 16777216 op, 709584300.00 ns, 42.2945 ns/op | |
WorkloadResult 73: 16777216 op, 700121900.00 ns, 41.7305 ns/op | |
WorkloadResult 74: 16777216 op, 703701400.00 ns, 41.9439 ns/op | |
WorkloadResult 75: 16777216 op, 796290500.00 ns, 47.4626 ns/op | |
WorkloadResult 76: 16777216 op, 662226700.00 ns, 39.4718 ns/op | |
WorkloadResult 77: 16777216 op, 693879200.00 ns, 41.3584 ns/op | |
WorkloadResult 78: 16777216 op, 797910600.00 ns, 47.5592 ns/op | |
WorkloadResult 79: 16777216 op, 680169200.00 ns, 40.5412 ns/op | |
WorkloadResult 80: 16777216 op, 809947400.00 ns, 48.2766 ns/op | |
WorkloadResult 81: 16777216 op, 711298900.00 ns, 42.3967 ns/op | |
WorkloadResult 82: 16777216 op, 793477600.00 ns, 47.2950 ns/op | |
WorkloadResult 83: 16777216 op, 625449100.00 ns, 37.2797 ns/op | |
WorkloadResult 84: 16777216 op, 584630800.00 ns, 34.8467 ns/op | |
WorkloadResult 85: 16777216 op, 698226700.00 ns, 41.6176 ns/op | |
WorkloadResult 86: 16777216 op, 747385900.00 ns, 44.5477 ns/op | |
WorkloadResult 87: 16777216 op, 728264000.00 ns, 43.4079 ns/op | |
WorkloadResult 88: 16777216 op, 717707600.00 ns, 42.7787 ns/op | |
WorkloadResult 89: 16777216 op, 725782300.00 ns, 43.2600 ns/op | |
WorkloadResult 90: 16777216 op, 704898800.00 ns, 42.0152 ns/op | |
WorkloadResult 91: 16777216 op, 727862900.00 ns, 43.3840 ns/op | |
WorkloadResult 92: 16777216 op, 726683200.00 ns, 43.3137 ns/op | |
WorkloadResult 93: 16777216 op, 795084100.00 ns, 47.3907 ns/op | |
WorkloadResult 94: 16777216 op, 713409900.00 ns, 42.5225 ns/op | |
WorkloadResult 95: 16777216 op, 784259000.00 ns, 46.7455 ns/op | |
WorkloadResult 96: 16777216 op, 816882900.00 ns, 48.6900 ns/op | |
WorkloadResult 97: 16777216 op, 733901100.00 ns, 43.7439 ns/op | |
WorkloadResult 98: 16777216 op, 733151500.00 ns, 43.6992 ns/op | |
WorkloadResult 99: 16777216 op, 775592400.00 ns, 46.2289 ns/op | |
WorkloadResult 100: 16777216 op, 801580700.00 ns, 47.7779 ns/op | |
GC: 171 0 0 536870912 16777216 | |
Threading: 2 0 16777216 | |
// AfterAll | |
// Benchmark Process 14976 has exited with code 0 | |
Mean = 43.165 ns, StdErr = 0.429 ns (0.99%), N = 100, StdDev = 4.287 ns | |
Min = 34.530 ns, Q1 = 41.126 ns, Median = 42.782 ns, Q3 = 47.191 ns, Max = 49.389 ns | |
IQR = 6.065 ns, LowerFence = 32.029 ns, UpperFence = 56.289 ns | |
ConfidenceInterval = [41.711 ns; 44.619 ns] (CI 99.9%), Margin = 1.454 ns (3.37% of Mean) | |
Skewness = -0.39, Kurtosis = 2.22, MValue = 3.76 | |
// ************************** | |
// Benchmark: RankTests.Rank: DefaultJob [n=100, k=6, kCombination=Int32[6]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "45ee11c8-1f85-49bd-9a64-9c03db6b4199.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.RankTests.Rank(n: 100, k: 6, kCombination: [11, 16, 23, 34, 42, ...])" --job "Default" --benchmarkId 4 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 362900.00 ns, 362.9000 us/op | |
WorkloadJitting 1: 1 op, 2140100.00 ns, 2.1401 ms/op | |
OverheadJitting 2: 16 op, 641500.00 ns, 40.0938 us/op | |
WorkloadJitting 2: 16 op, 609900.00 ns, 38.1187 us/op | |
WorkloadPilot 1: 16 op, 4200.00 ns, 262.5000 ns/op | |
WorkloadPilot 2: 32 op, 5100.00 ns, 159.3750 ns/op | |
WorkloadPilot 3: 64 op, 7000.00 ns, 109.3750 ns/op | |
WorkloadPilot 4: 128 op, 9900.00 ns, 77.3438 ns/op | |
WorkloadPilot 5: 256 op, 18900.00 ns, 73.8281 ns/op | |
WorkloadPilot 6: 512 op, 31300.00 ns, 61.1328 ns/op | |
WorkloadPilot 7: 1024 op, 62600.00 ns, 61.1328 ns/op | |
WorkloadPilot 8: 2048 op, 125200.00 ns, 61.1328 ns/op | |
WorkloadPilot 9: 4096 op, 304800.00 ns, 74.4141 ns/op | |
WorkloadPilot 10: 8192 op, 629500.00 ns, 76.8433 ns/op | |
WorkloadPilot 11: 16384 op, 1250400.00 ns, 76.3184 ns/op | |
WorkloadPilot 12: 32768 op, 2539000.00 ns, 77.4841 ns/op | |
WorkloadPilot 13: 65536 op, 4954700.00 ns, 75.6027 ns/op | |
WorkloadPilot 14: 131072 op, 8231900.00 ns, 62.8044 ns/op | |
WorkloadPilot 15: 262144 op, 16120200.00 ns, 61.4937 ns/op | |
WorkloadPilot 16: 524288 op, 32829500.00 ns, 62.6173 ns/op | |
WorkloadPilot 17: 1048576 op, 64553400.00 ns, 61.5629 ns/op | |
WorkloadPilot 18: 2097152 op, 132059400.00 ns, 62.9708 ns/op | |
WorkloadPilot 19: 4194304 op, 281335500.00 ns, 67.0756 ns/op | |
WorkloadPilot 20: 8388608 op, 634164100.00 ns, 75.5983 ns/op | |
OverheadWarmup 1: 8388608 op, 13662300.00 ns, 1.6287 ns/op | |
OverheadWarmup 2: 8388608 op, 13023200.00 ns, 1.5525 ns/op | |
OverheadWarmup 3: 8388608 op, 14127700.00 ns, 1.6842 ns/op | |
OverheadWarmup 4: 8388608 op, 13838300.00 ns, 1.6497 ns/op | |
OverheadWarmup 5: 8388608 op, 12388600.00 ns, 1.4768 ns/op | |
OverheadWarmup 6: 8388608 op, 13015300.00 ns, 1.5515 ns/op | |
OverheadWarmup 7: 8388608 op, 13132400.00 ns, 1.5655 ns/op | |
OverheadWarmup 8: 8388608 op, 13484500.00 ns, 1.6075 ns/op | |
OverheadWarmup 9: 8388608 op, 13750600.00 ns, 1.6392 ns/op | |
OverheadWarmup 10: 8388608 op, 13923500.00 ns, 1.6598 ns/op | |
OverheadActual 1: 8388608 op, 14120900.00 ns, 1.6833 ns/op | |
OverheadActual 2: 8388608 op, 12774500.00 ns, 1.5228 ns/op | |
OverheadActual 3: 8388608 op, 13322800.00 ns, 1.5882 ns/op | |
OverheadActual 4: 8388608 op, 13128500.00 ns, 1.5650 ns/op | |
OverheadActual 5: 8388608 op, 13186900.00 ns, 1.5720 ns/op | |
OverheadActual 6: 8388608 op, 13356500.00 ns, 1.5922 ns/op | |
OverheadActual 7: 8388608 op, 13009400.00 ns, 1.5508 ns/op | |
OverheadActual 8: 8388608 op, 12967000.00 ns, 1.5458 ns/op | |
OverheadActual 9: 8388608 op, 13626300.00 ns, 1.6244 ns/op | |
OverheadActual 10: 8388608 op, 13215300.00 ns, 1.5754 ns/op | |
OverheadActual 11: 8388608 op, 13644700.00 ns, 1.6266 ns/op | |
OverheadActual 12: 8388608 op, 13339700.00 ns, 1.5902 ns/op | |
OverheadActual 13: 8388608 op, 12307400.00 ns, 1.4672 ns/op | |
OverheadActual 14: 8388608 op, 12376700.00 ns, 1.4754 ns/op | |
OverheadActual 15: 8388608 op, 12697400.00 ns, 1.5136 ns/op | |
WorkloadWarmup 1: 8388608 op, 546028400.00 ns, 65.0917 ns/op | |
WorkloadWarmup 2: 8388608 op, 512995100.00 ns, 61.1538 ns/op | |
WorkloadWarmup 3: 8388608 op, 569933300.00 ns, 67.9413 ns/op | |
WorkloadWarmup 4: 8388608 op, 583858300.00 ns, 69.6013 ns/op | |
WorkloadWarmup 5: 8388608 op, 588199300.00 ns, 70.1188 ns/op | |
WorkloadWarmup 6: 8388608 op, 568579400.00 ns, 67.7799 ns/op | |
WorkloadWarmup 7: 8388608 op, 590710600.00 ns, 70.4182 ns/op | |
WorkloadWarmup 8: 8388608 op, 594363800.00 ns, 70.8537 ns/op | |
WorkloadWarmup 9: 8388608 op, 633778800.00 ns, 75.5523 ns/op | |
WorkloadWarmup 10: 8388608 op, 567116700.00 ns, 67.6056 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 8388608 op, 613574100.00 ns, 73.1437 ns/op | |
WorkloadActual 2: 8388608 op, 605864900.00 ns, 72.2247 ns/op | |
WorkloadActual 3: 8388608 op, 551736700.00 ns, 65.7721 ns/op | |
WorkloadActual 4: 8388608 op, 586894800.00 ns, 69.9633 ns/op | |
WorkloadActual 5: 8388608 op, 585344200.00 ns, 69.7785 ns/op | |
WorkloadActual 6: 8388608 op, 597863400.00 ns, 71.2709 ns/op | |
WorkloadActual 7: 8388608 op, 525091300.00 ns, 62.5958 ns/op | |
WorkloadActual 8: 8388608 op, 577111600.00 ns, 68.7971 ns/op | |
WorkloadActual 9: 8388608 op, 617302600.00 ns, 73.5882 ns/op | |
WorkloadActual 10: 8388608 op, 564177400.00 ns, 67.2552 ns/op | |
WorkloadActual 11: 8388608 op, 573472200.00 ns, 68.3632 ns/op | |
WorkloadActual 12: 8388608 op, 574665600.00 ns, 68.5055 ns/op | |
WorkloadActual 13: 8388608 op, 657331700.00 ns, 78.3600 ns/op | |
WorkloadActual 14: 8388608 op, 690659600.00 ns, 82.3330 ns/op | |
WorkloadActual 15: 8388608 op, 581780000.00 ns, 69.3536 ns/op | |
WorkloadActual 16: 8388608 op, 605785400.00 ns, 72.2152 ns/op | |
WorkloadActual 17: 8388608 op, 573904800.00 ns, 68.4148 ns/op | |
WorkloadActual 18: 8388608 op, 568242700.00 ns, 67.7398 ns/op | |
WorkloadActual 19: 8388608 op, 593322800.00 ns, 70.7296 ns/op | |
WorkloadActual 20: 8388608 op, 589325600.00 ns, 70.2531 ns/op | |
WorkloadActual 21: 8388608 op, 657727300.00 ns, 78.4072 ns/op | |
WorkloadActual 22: 8388608 op, 607476400.00 ns, 72.4168 ns/op | |
WorkloadActual 23: 8388608 op, 606206600.00 ns, 72.2655 ns/op | |
WorkloadActual 24: 8388608 op, 595987300.00 ns, 71.0472 ns/op | |
WorkloadActual 25: 8388608 op, 614068400.00 ns, 73.2027 ns/op | |
WorkloadActual 26: 8388608 op, 590241700.00 ns, 70.3623 ns/op | |
WorkloadActual 27: 8388608 op, 596970700.00 ns, 71.1645 ns/op | |
WorkloadActual 28: 8388608 op, 651380700.00 ns, 77.6506 ns/op | |
WorkloadActual 29: 8388608 op, 593334300.00 ns, 70.7310 ns/op | |
WorkloadActual 30: 8388608 op, 580649700.00 ns, 69.2188 ns/op | |
WorkloadActual 31: 8388608 op, 563610600.00 ns, 67.1876 ns/op | |
WorkloadActual 32: 8388608 op, 593088200.00 ns, 70.7016 ns/op | |
WorkloadActual 33: 8388608 op, 603586800.00 ns, 71.9532 ns/op | |
WorkloadActual 34: 8388608 op, 598312200.00 ns, 71.3244 ns/op | |
WorkloadActual 35: 8388608 op, 588586600.00 ns, 70.1650 ns/op | |
WorkloadActual 36: 8388608 op, 579872300.00 ns, 69.1262 ns/op | |
WorkloadActual 37: 8388608 op, 588006600.00 ns, 70.0958 ns/op | |
WorkloadActual 38: 8388608 op, 600988500.00 ns, 71.6434 ns/op | |
WorkloadActual 39: 8388608 op, 602002400.00 ns, 71.7643 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 8388608 op, 600387200.00 ns, 71.5717 ns/op | |
WorkloadResult 2: 8388608 op, 592678000.00 ns, 70.6527 ns/op | |
WorkloadResult 3: 8388608 op, 538549800.00 ns, 64.2001 ns/op | |
WorkloadResult 4: 8388608 op, 573707900.00 ns, 68.3913 ns/op | |
WorkloadResult 5: 8388608 op, 572157300.00 ns, 68.2065 ns/op | |
WorkloadResult 6: 8388608 op, 584676500.00 ns, 69.6989 ns/op | |
WorkloadResult 7: 8388608 op, 511904400.00 ns, 61.0238 ns/op | |
WorkloadResult 8: 8388608 op, 563924700.00 ns, 67.2251 ns/op | |
WorkloadResult 9: 8388608 op, 604115700.00 ns, 72.0162 ns/op | |
WorkloadResult 10: 8388608 op, 550990500.00 ns, 65.6832 ns/op | |
WorkloadResult 11: 8388608 op, 560285300.00 ns, 66.7912 ns/op | |
WorkloadResult 12: 8388608 op, 561478700.00 ns, 66.9335 ns/op | |
WorkloadResult 13: 8388608 op, 568593100.00 ns, 67.7816 ns/op | |
WorkloadResult 14: 8388608 op, 592598500.00 ns, 70.6432 ns/op | |
WorkloadResult 15: 8388608 op, 560717900.00 ns, 66.8428 ns/op | |
WorkloadResult 16: 8388608 op, 555055800.00 ns, 66.1678 ns/op | |
WorkloadResult 17: 8388608 op, 580135900.00 ns, 69.1576 ns/op | |
WorkloadResult 18: 8388608 op, 576138700.00 ns, 68.6811 ns/op | |
WorkloadResult 19: 8388608 op, 594289500.00 ns, 70.8448 ns/op | |
WorkloadResult 20: 8388608 op, 593019700.00 ns, 70.6935 ns/op | |
WorkloadResult 21: 8388608 op, 582800400.00 ns, 69.4752 ns/op | |
WorkloadResult 22: 8388608 op, 600881500.00 ns, 71.6307 ns/op | |
WorkloadResult 23: 8388608 op, 577054800.00 ns, 68.7903 ns/op | |
WorkloadResult 24: 8388608 op, 583783800.00 ns, 69.5925 ns/op | |
WorkloadResult 25: 8388608 op, 580147400.00 ns, 69.1590 ns/op | |
WorkloadResult 26: 8388608 op, 567462800.00 ns, 67.6468 ns/op | |
WorkloadResult 27: 8388608 op, 550423700.00 ns, 65.6156 ns/op | |
WorkloadResult 28: 8388608 op, 579901300.00 ns, 69.1296 ns/op | |
WorkloadResult 29: 8388608 op, 590399900.00 ns, 70.3812 ns/op | |
WorkloadResult 30: 8388608 op, 585125300.00 ns, 69.7524 ns/op | |
WorkloadResult 31: 8388608 op, 575399700.00 ns, 68.5930 ns/op | |
WorkloadResult 32: 8388608 op, 566685400.00 ns, 67.5542 ns/op | |
WorkloadResult 33: 8388608 op, 574819700.00 ns, 68.5238 ns/op | |
WorkloadResult 34: 8388608 op, 587801600.00 ns, 70.0714 ns/op | |
WorkloadResult 35: 8388608 op, 588815500.00 ns, 70.1923 ns/op | |
GC: 213 0 0 671088640 8388608 | |
Threading: 2 0 8388608 | |
// AfterAll | |
// Benchmark Process 6076 has exited with code 0 | |
Mean = 68.552 ns, StdErr = 0.383 ns (0.56%), N = 35, StdDev = 2.266 ns | |
Min = 61.024 ns, Q1 = 67.390 ns, Median = 68.790 ns, Q3 = 70.132 ns, Max = 72.016 ns | |
IQR = 2.742 ns, LowerFence = 63.276 ns, UpperFence = 74.245 ns | |
ConfidenceInterval = [67.173 ns; 69.931 ns] (CI 99.9%), Margin = 1.379 ns (2.01% of Mean) | |
Skewness = -1.06, Kurtosis = 4.56, MValue = 2 | |
// ************************** | |
// Benchmark: RankTests.FastRank: DefaultJob [n=100, k=6, kCombination=Int32[6]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "45ee11c8-1f85-49bd-9a64-9c03db6b4199.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.RankTests.FastRank(n: 100, k: 6, kCombination: [11, 16, 23, 34, 42, ...])" --job "Default" --benchmarkId 5 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\45ee11c8-1f85-49bd-9a64-9c03db6b4199\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 346800.00 ns, 346.8000 us/op | |
WorkloadJitting 1: 1 op, 1850500.00 ns, 1.8505 ms/op | |
OverheadJitting 2: 16 op, 568500.00 ns, 35.5312 us/op | |
WorkloadJitting 2: 16 op, 561300.00 ns, 35.0812 us/op | |
WorkloadPilot 1: 16 op, 4700.00 ns, 293.7500 ns/op | |
WorkloadPilot 2: 32 op, 2600.00 ns, 81.2500 ns/op | |
WorkloadPilot 3: 64 op, 3300.00 ns, 51.5625 ns/op | |
WorkloadPilot 4: 128 op, 6600.00 ns, 51.5625 ns/op | |
WorkloadPilot 5: 256 op, 11100.00 ns, 43.3594 ns/op | |
WorkloadPilot 6: 512 op, 23400.00 ns, 45.7031 ns/op | |
WorkloadPilot 7: 1024 op, 40300.00 ns, 39.3555 ns/op | |
WorkloadPilot 8: 2048 op, 82900.00 ns, 40.4785 ns/op | |
WorkloadPilot 9: 4096 op, 157000.00 ns, 38.3301 ns/op | |
WorkloadPilot 10: 8192 op, 342700.00 ns, 41.8335 ns/op | |
WorkloadPilot 11: 16384 op, 702100.00 ns, 42.8528 ns/op | |
WorkloadPilot 12: 32768 op, 1425900.00 ns, 43.5150 ns/op | |
WorkloadPilot 13: 65536 op, 2988300.00 ns, 45.5978 ns/op | |
WorkloadPilot 14: 131072 op, 5881400.00 ns, 44.8715 ns/op | |
WorkloadPilot 15: 262144 op, 10121400.00 ns, 38.6101 ns/op | |
WorkloadPilot 16: 524288 op, 21025700.00 ns, 40.1033 ns/op | |
WorkloadPilot 17: 1048576 op, 41536700.00 ns, 39.6125 ns/op | |
WorkloadPilot 18: 2097152 op, 89332900.00 ns, 42.5972 ns/op | |
WorkloadPilot 19: 4194304 op, 167898000.00 ns, 40.0300 ns/op | |
WorkloadPilot 20: 8388608 op, 412957000.00 ns, 49.2283 ns/op | |
WorkloadPilot 21: 16777216 op, 761218200.00 ns, 45.3721 ns/op | |
OverheadWarmup 1: 16777216 op, 26941600.00 ns, 1.6058 ns/op | |
OverheadWarmup 2: 16777216 op, 25573200.00 ns, 1.5243 ns/op | |
OverheadWarmup 3: 16777216 op, 25781000.00 ns, 1.5367 ns/op | |
OverheadWarmup 4: 16777216 op, 26287100.00 ns, 1.5668 ns/op | |
OverheadWarmup 5: 16777216 op, 26825800.00 ns, 1.5989 ns/op | |
OverheadWarmup 6: 16777216 op, 26341700.00 ns, 1.5701 ns/op | |
OverheadWarmup 7: 16777216 op, 26423100.00 ns, 1.5749 ns/op | |
OverheadWarmup 8: 16777216 op, 25801500.00 ns, 1.5379 ns/op | |
OverheadActual 1: 16777216 op, 29525800.00 ns, 1.7599 ns/op | |
OverheadActual 2: 16777216 op, 29165400.00 ns, 1.7384 ns/op | |
OverheadActual 3: 16777216 op, 29164300.00 ns, 1.7383 ns/op | |
OverheadActual 4: 16777216 op, 30745100.00 ns, 1.8326 ns/op | |
OverheadActual 5: 16777216 op, 29086000.00 ns, 1.7337 ns/op | |
OverheadActual 6: 16777216 op, 29071700.00 ns, 1.7328 ns/op | |
OverheadActual 7: 16777216 op, 27746600.00 ns, 1.6538 ns/op | |
OverheadActual 8: 16777216 op, 24766700.00 ns, 1.4762 ns/op | |
OverheadActual 9: 16777216 op, 25094600.00 ns, 1.4958 ns/op | |
OverheadActual 10: 16777216 op, 24832400.00 ns, 1.4801 ns/op | |
OverheadActual 11: 16777216 op, 24830900.00 ns, 1.4800 ns/op | |
OverheadActual 12: 16777216 op, 24657700.00 ns, 1.4697 ns/op | |
OverheadActual 13: 16777216 op, 24583700.00 ns, 1.4653 ns/op | |
OverheadActual 14: 16777216 op, 24670800.00 ns, 1.4705 ns/op | |
OverheadActual 15: 16777216 op, 24737500.00 ns, 1.4745 ns/op | |
OverheadActual 16: 16777216 op, 24999200.00 ns, 1.4901 ns/op | |
OverheadActual 17: 16777216 op, 24840200.00 ns, 1.4806 ns/op | |
OverheadActual 18: 16777216 op, 26350200.00 ns, 1.5706 ns/op | |
OverheadActual 19: 16777216 op, 25120000.00 ns, 1.4973 ns/op | |
OverheadActual 20: 16777216 op, 24582000.00 ns, 1.4652 ns/op | |
WorkloadWarmup 1: 16777216 op, 723699200.00 ns, 43.1358 ns/op | |
WorkloadWarmup 2: 16777216 op, 713094500.00 ns, 42.5037 ns/op | |
WorkloadWarmup 3: 16777216 op, 784858500.00 ns, 46.7812 ns/op | |
WorkloadWarmup 4: 16777216 op, 736684300.00 ns, 43.9098 ns/op | |
WorkloadWarmup 5: 16777216 op, 784654400.00 ns, 46.7690 ns/op | |
WorkloadWarmup 6: 16777216 op, 749806600.00 ns, 44.6920 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 728624500.00 ns, 43.4294 ns/op | |
WorkloadActual 2: 16777216 op, 722097800.00 ns, 43.0404 ns/op | |
WorkloadActual 3: 16777216 op, 694599200.00 ns, 41.4013 ns/op | |
WorkloadActual 4: 16777216 op, 698924800.00 ns, 41.6592 ns/op | |
WorkloadActual 5: 16777216 op, 774159000.00 ns, 46.1435 ns/op | |
WorkloadActual 6: 16777216 op, 789984700.00 ns, 47.0868 ns/op | |
WorkloadActual 7: 16777216 op, 781991900.00 ns, 46.6103 ns/op | |
WorkloadActual 8: 16777216 op, 739772500.00 ns, 44.0939 ns/op | |
WorkloadActual 9: 16777216 op, 740997300.00 ns, 44.1669 ns/op | |
WorkloadActual 10: 16777216 op, 802763400.00 ns, 47.8484 ns/op | |
WorkloadActual 11: 16777216 op, 739020800.00 ns, 44.0491 ns/op | |
WorkloadActual 12: 16777216 op, 724383300.00 ns, 43.1766 ns/op | |
WorkloadActual 13: 16777216 op, 728682900.00 ns, 43.4329 ns/op | |
WorkloadActual 14: 16777216 op, 738472300.00 ns, 44.0164 ns/op | |
WorkloadActual 15: 16777216 op, 738802100.00 ns, 44.0360 ns/op | |
WorkloadActual 16: 16777216 op, 692435500.00 ns, 41.2724 ns/op | |
WorkloadActual 17: 16777216 op, 716513400.00 ns, 42.7075 ns/op | |
WorkloadActual 18: 16777216 op, 734659900.00 ns, 43.7891 ns/op | |
WorkloadActual 19: 16777216 op, 729213800.00 ns, 43.4645 ns/op | |
WorkloadActual 20: 16777216 op, 753078300.00 ns, 44.8870 ns/op | |
WorkloadActual 21: 16777216 op, 721459900.00 ns, 43.0024 ns/op | |
WorkloadActual 22: 16777216 op, 717999200.00 ns, 42.7961 ns/op | |
WorkloadActual 23: 16777216 op, 707354900.00 ns, 42.1616 ns/op | |
WorkloadActual 24: 16777216 op, 768580000.00 ns, 45.8109 ns/op | |
WorkloadActual 25: 16777216 op, 719203400.00 ns, 42.8679 ns/op | |
WorkloadActual 26: 16777216 op, 752558400.00 ns, 44.8560 ns/op | |
WorkloadActual 27: 16777216 op, 747879800.00 ns, 44.5771 ns/op | |
WorkloadActual 28: 16777216 op, 743895200.00 ns, 44.3396 ns/op | |
WorkloadActual 29: 16777216 op, 729995000.00 ns, 43.5111 ns/op | |
WorkloadActual 30: 16777216 op, 759612100.00 ns, 45.2764 ns/op | |
WorkloadActual 31: 16777216 op, 732005600.00 ns, 43.6309 ns/op | |
WorkloadActual 32: 16777216 op, 730880700.00 ns, 43.5639 ns/op | |
WorkloadActual 33: 16777216 op, 663926300.00 ns, 39.5731 ns/op | |
WorkloadActual 34: 16777216 op, 792670500.00 ns, 47.2468 ns/op | |
WorkloadActual 35: 16777216 op, 862565100.00 ns, 51.4129 ns/op | |
WorkloadActual 36: 16777216 op, 731107900.00 ns, 43.5774 ns/op | |
WorkloadActual 37: 16777216 op, 836848200.00 ns, 49.8800 ns/op | |
WorkloadActual 38: 16777216 op, 825061600.00 ns, 49.1775 ns/op | |
WorkloadActual 39: 16777216 op, 769364000.00 ns, 45.8577 ns/op | |
WorkloadActual 40: 16777216 op, 663492800.00 ns, 39.5473 ns/op | |
WorkloadActual 41: 16777216 op, 766517000.00 ns, 45.6880 ns/op | |
WorkloadActual 42: 16777216 op, 706839800.00 ns, 42.1309 ns/op | |
WorkloadActual 43: 16777216 op, 737526300.00 ns, 43.9600 ns/op | |
WorkloadActual 44: 16777216 op, 838831100.00 ns, 49.9982 ns/op | |
WorkloadActual 45: 16777216 op, 762939900.00 ns, 45.4748 ns/op | |
WorkloadActual 46: 16777216 op, 889375100.00 ns, 53.0109 ns/op | |
WorkloadActual 47: 16777216 op, 891203200.00 ns, 53.1199 ns/op | |
WorkloadActual 48: 16777216 op, 893788400.00 ns, 53.2739 ns/op | |
WorkloadActual 49: 16777216 op, 836158100.00 ns, 49.8389 ns/op | |
WorkloadActual 50: 16777216 op, 720923500.00 ns, 42.9704 ns/op | |
WorkloadActual 51: 16777216 op, 717198600.00 ns, 42.7484 ns/op | |
WorkloadActual 52: 16777216 op, 760206500.00 ns, 45.3118 ns/op | |
WorkloadActual 53: 16777216 op, 732306000.00 ns, 43.6488 ns/op | |
WorkloadActual 54: 16777216 op, 779004400.00 ns, 46.4323 ns/op | |
WorkloadActual 55: 16777216 op, 817796400.00 ns, 48.7445 ns/op | |
WorkloadActual 56: 16777216 op, 863896800.00 ns, 51.4923 ns/op | |
WorkloadActual 57: 16777216 op, 710714400.00 ns, 42.3619 ns/op | |
WorkloadActual 58: 16777216 op, 726569600.00 ns, 43.3069 ns/op | |
WorkloadActual 59: 16777216 op, 749760300.00 ns, 44.6892 ns/op | |
WorkloadActual 60: 16777216 op, 833816100.00 ns, 49.6993 ns/op | |
WorkloadActual 61: 16777216 op, 719497400.00 ns, 42.8854 ns/op | |
WorkloadActual 62: 16777216 op, 844916700.00 ns, 50.3610 ns/op | |
WorkloadActual 63: 16777216 op, 838347900.00 ns, 49.9694 ns/op | |
WorkloadActual 64: 16777216 op, 771344200.00 ns, 45.9757 ns/op | |
WorkloadActual 65: 16777216 op, 839199600.00 ns, 50.0202 ns/op | |
WorkloadActual 66: 16777216 op, 722061800.00 ns, 43.0382 ns/op | |
WorkloadActual 67: 16777216 op, 745488700.00 ns, 44.4346 ns/op | |
WorkloadActual 68: 16777216 op, 764915300.00 ns, 45.5925 ns/op | |
WorkloadActual 69: 16777216 op, 867621400.00 ns, 51.7143 ns/op | |
WorkloadActual 70: 16777216 op, 762791900.00 ns, 45.4659 ns/op | |
WorkloadActual 71: 16777216 op, 781134000.00 ns, 46.5592 ns/op | |
WorkloadActual 72: 16777216 op, 840059700.00 ns, 50.0715 ns/op | |
WorkloadActual 73: 16777216 op, 821558900.00 ns, 48.9687 ns/op | |
WorkloadActual 74: 16777216 op, 889429600.00 ns, 53.0141 ns/op | |
WorkloadActual 75: 16777216 op, 728541100.00 ns, 43.4244 ns/op | |
WorkloadActual 76: 16777216 op, 785032900.00 ns, 46.7916 ns/op | |
WorkloadActual 77: 16777216 op, 777351700.00 ns, 46.3338 ns/op | |
WorkloadActual 78: 16777216 op, 756070400.00 ns, 45.0653 ns/op | |
WorkloadActual 79: 16777216 op, 788594600.00 ns, 47.0039 ns/op | |
WorkloadActual 80: 16777216 op, 888806600.00 ns, 52.9770 ns/op | |
WorkloadActual 81: 16777216 op, 682258400.00 ns, 40.6658 ns/op | |
WorkloadActual 82: 16777216 op, 796686600.00 ns, 47.4862 ns/op | |
WorkloadActual 83: 16777216 op, 706652900.00 ns, 42.1198 ns/op | |
WorkloadActual 84: 16777216 op, 602959600.00 ns, 35.9392 ns/op | |
WorkloadActual 85: 16777216 op, 672403400.00 ns, 40.0784 ns/op | |
WorkloadActual 86: 16777216 op, 741504000.00 ns, 44.1971 ns/op | |
WorkloadActual 87: 16777216 op, 732822000.00 ns, 43.6796 ns/op | |
WorkloadActual 88: 16777216 op, 707398400.00 ns, 42.1642 ns/op | |
WorkloadActual 89: 16777216 op, 830197800.00 ns, 49.4836 ns/op | |
WorkloadActual 90: 16777216 op, 746842900.00 ns, 44.5153 ns/op | |
WorkloadActual 91: 16777216 op, 729231900.00 ns, 43.4656 ns/op | |
WorkloadActual 92: 16777216 op, 754876600.00 ns, 44.9942 ns/op | |
WorkloadActual 93: 16777216 op, 732675200.00 ns, 43.6708 ns/op | |
WorkloadActual 94: 16777216 op, 768067000.00 ns, 45.7804 ns/op | |
WorkloadActual 95: 16777216 op, 731591700.00 ns, 43.6063 ns/op | |
WorkloadActual 96: 16777216 op, 804680300.00 ns, 47.9627 ns/op | |
WorkloadActual 97: 16777216 op, 749724900.00 ns, 44.6871 ns/op | |
WorkloadActual 98: 16777216 op, 736718500.00 ns, 43.9118 ns/op | |
WorkloadActual 99: 16777216 op, 734997600.00 ns, 43.8093 ns/op | |
WorkloadActual 100: 16777216 op, 717676300.00 ns, 42.7768 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 703577600.00 ns, 41.9365 ns/op | |
WorkloadResult 2: 16777216 op, 697050900.00 ns, 41.5475 ns/op | |
WorkloadResult 3: 16777216 op, 669552300.00 ns, 39.9084 ns/op | |
WorkloadResult 4: 16777216 op, 673877900.00 ns, 40.1663 ns/op | |
WorkloadResult 5: 16777216 op, 749112100.00 ns, 44.6506 ns/op | |
WorkloadResult 6: 16777216 op, 764937800.00 ns, 45.5938 ns/op | |
WorkloadResult 7: 16777216 op, 756945000.00 ns, 45.1174 ns/op | |
WorkloadResult 8: 16777216 op, 714725600.00 ns, 42.6010 ns/op | |
WorkloadResult 9: 16777216 op, 715950400.00 ns, 42.6740 ns/op | |
WorkloadResult 10: 16777216 op, 777716500.00 ns, 46.3555 ns/op | |
WorkloadResult 11: 16777216 op, 713973900.00 ns, 42.5562 ns/op | |
WorkloadResult 12: 16777216 op, 699336400.00 ns, 41.6837 ns/op | |
WorkloadResult 13: 16777216 op, 703636000.00 ns, 41.9400 ns/op | |
WorkloadResult 14: 16777216 op, 713425400.00 ns, 42.5235 ns/op | |
WorkloadResult 15: 16777216 op, 713755200.00 ns, 42.5431 ns/op | |
WorkloadResult 16: 16777216 op, 667388600.00 ns, 39.7795 ns/op | |
WorkloadResult 17: 16777216 op, 691466500.00 ns, 41.2146 ns/op | |
WorkloadResult 18: 16777216 op, 709613000.00 ns, 42.2962 ns/op | |
WorkloadResult 19: 16777216 op, 704166900.00 ns, 41.9716 ns/op | |
WorkloadResult 20: 16777216 op, 728031400.00 ns, 43.3941 ns/op | |
WorkloadResult 21: 16777216 op, 696413000.00 ns, 41.5094 ns/op | |
WorkloadResult 22: 16777216 op, 692952300.00 ns, 41.3032 ns/op | |
WorkloadResult 23: 16777216 op, 682308000.00 ns, 40.6687 ns/op | |
WorkloadResult 24: 16777216 op, 743533100.00 ns, 44.3180 ns/op | |
WorkloadResult 25: 16777216 op, 694156500.00 ns, 41.3750 ns/op | |
WorkloadResult 26: 16777216 op, 727511500.00 ns, 43.3631 ns/op | |
WorkloadResult 27: 16777216 op, 722832900.00 ns, 43.0842 ns/op | |
WorkloadResult 28: 16777216 op, 718848300.00 ns, 42.8467 ns/op | |
WorkloadResult 29: 16777216 op, 704948100.00 ns, 42.0182 ns/op | |
WorkloadResult 30: 16777216 op, 734565200.00 ns, 43.7835 ns/op | |
WorkloadResult 31: 16777216 op, 706958700.00 ns, 42.1380 ns/op | |
WorkloadResult 32: 16777216 op, 705833800.00 ns, 42.0710 ns/op | |
WorkloadResult 33: 16777216 op, 638879400.00 ns, 38.0802 ns/op | |
WorkloadResult 34: 16777216 op, 767623600.00 ns, 45.7539 ns/op | |
WorkloadResult 35: 16777216 op, 837518200.00 ns, 49.9200 ns/op | |
WorkloadResult 36: 16777216 op, 706061000.00 ns, 42.0845 ns/op | |
WorkloadResult 37: 16777216 op, 811801300.00 ns, 48.3871 ns/op | |
WorkloadResult 38: 16777216 op, 800014700.00 ns, 47.6846 ns/op | |
WorkloadResult 39: 16777216 op, 744317100.00 ns, 44.3648 ns/op | |
WorkloadResult 40: 16777216 op, 638445900.00 ns, 38.0543 ns/op | |
WorkloadResult 41: 16777216 op, 741470100.00 ns, 44.1951 ns/op | |
WorkloadResult 42: 16777216 op, 681792900.00 ns, 40.6380 ns/op | |
WorkloadResult 43: 16777216 op, 712479400.00 ns, 42.4671 ns/op | |
WorkloadResult 44: 16777216 op, 813784200.00 ns, 48.5053 ns/op | |
WorkloadResult 45: 16777216 op, 737893000.00 ns, 43.9819 ns/op | |
WorkloadResult 46: 16777216 op, 811111200.00 ns, 48.3460 ns/op | |
WorkloadResult 47: 16777216 op, 695876600.00 ns, 41.4775 ns/op | |
WorkloadResult 48: 16777216 op, 692151700.00 ns, 41.2555 ns/op | |
WorkloadResult 49: 16777216 op, 735159600.00 ns, 43.8189 ns/op | |
WorkloadResult 50: 16777216 op, 707259100.00 ns, 42.1559 ns/op | |
WorkloadResult 51: 16777216 op, 753957500.00 ns, 44.9394 ns/op | |
WorkloadResult 52: 16777216 op, 792749500.00 ns, 47.2516 ns/op | |
WorkloadResult 53: 16777216 op, 838849900.00 ns, 49.9994 ns/op | |
WorkloadResult 54: 16777216 op, 685667500.00 ns, 40.8690 ns/op | |
WorkloadResult 55: 16777216 op, 701522700.00 ns, 41.8140 ns/op | |
WorkloadResult 56: 16777216 op, 724713400.00 ns, 43.1963 ns/op | |
WorkloadResult 57: 16777216 op, 808769200.00 ns, 48.2064 ns/op | |
WorkloadResult 58: 16777216 op, 694450500.00 ns, 41.3925 ns/op | |
WorkloadResult 59: 16777216 op, 819869800.00 ns, 48.8680 ns/op | |
WorkloadResult 60: 16777216 op, 813301000.00 ns, 48.4765 ns/op | |
WorkloadResult 61: 16777216 op, 746297300.00 ns, 44.4828 ns/op | |
WorkloadResult 62: 16777216 op, 814152700.00 ns, 48.5273 ns/op | |
WorkloadResult 63: 16777216 op, 697014900.00 ns, 41.5453 ns/op | |
WorkloadResult 64: 16777216 op, 720441800.00 ns, 42.9417 ns/op | |
WorkloadResult 65: 16777216 op, 739868400.00 ns, 44.0996 ns/op | |
WorkloadResult 66: 16777216 op, 842574500.00 ns, 50.2214 ns/op | |
WorkloadResult 67: 16777216 op, 737745000.00 ns, 43.9730 ns/op | |
WorkloadResult 68: 16777216 op, 756087100.00 ns, 45.0663 ns/op | |
WorkloadResult 69: 16777216 op, 815012800.00 ns, 48.5785 ns/op | |
WorkloadResult 70: 16777216 op, 796512000.00 ns, 47.4758 ns/op | |
WorkloadResult 71: 16777216 op, 703494200.00 ns, 41.9315 ns/op | |
WorkloadResult 72: 16777216 op, 759986000.00 ns, 45.2987 ns/op | |
WorkloadResult 73: 16777216 op, 752304800.00 ns, 44.8409 ns/op | |
WorkloadResult 74: 16777216 op, 731023500.00 ns, 43.5724 ns/op | |
WorkloadResult 75: 16777216 op, 763547700.00 ns, 45.5110 ns/op | |
WorkloadResult 76: 16777216 op, 657211500.00 ns, 39.1729 ns/op | |
WorkloadResult 77: 16777216 op, 771639700.00 ns, 45.9933 ns/op | |
WorkloadResult 78: 16777216 op, 681606000.00 ns, 40.6269 ns/op | |
WorkloadResult 79: 16777216 op, 577912700.00 ns, 34.4463 ns/op | |
WorkloadResult 80: 16777216 op, 647356500.00 ns, 38.5855 ns/op | |
WorkloadResult 81: 16777216 op, 716457100.00 ns, 42.7042 ns/op | |
WorkloadResult 82: 16777216 op, 707775100.00 ns, 42.1867 ns/op | |
WorkloadResult 83: 16777216 op, 682351500.00 ns, 40.6713 ns/op | |
WorkloadResult 84: 16777216 op, 805150900.00 ns, 47.9907 ns/op | |
WorkloadResult 85: 16777216 op, 721796000.00 ns, 43.0224 ns/op | |
WorkloadResult 86: 16777216 op, 704185000.00 ns, 41.9727 ns/op | |
WorkloadResult 87: 16777216 op, 729829700.00 ns, 43.5012 ns/op | |
WorkloadResult 88: 16777216 op, 707628300.00 ns, 42.1779 ns/op | |
WorkloadResult 89: 16777216 op, 743020100.00 ns, 44.2874 ns/op | |
WorkloadResult 90: 16777216 op, 706544800.00 ns, 42.1134 ns/op | |
WorkloadResult 91: 16777216 op, 779633400.00 ns, 46.4698 ns/op | |
WorkloadResult 92: 16777216 op, 724678000.00 ns, 43.1942 ns/op | |
WorkloadResult 93: 16777216 op, 711671600.00 ns, 42.4189 ns/op | |
WorkloadResult 94: 16777216 op, 709950700.00 ns, 42.3164 ns/op | |
WorkloadResult 95: 16777216 op, 692629400.00 ns, 41.2839 ns/op | |
GC: 171 0 0 536870912 16777216 | |
Threading: 2 0 16777216 | |
// AfterAll | |
// Benchmark Process 14836 has exited with code 0 | |
Mean = 43.456 ns, StdErr = 0.299 ns (0.69%), N = 95, StdDev = 2.918 ns | |
Min = 34.446 ns, Q1 = 41.749 ns, Median = 42.704 ns, Q3 = 45.003 ns, Max = 50.221 ns | |
IQR = 3.254 ns, LowerFence = 36.868 ns, UpperFence = 49.884 ns | |
ConfidenceInterval = [42.439 ns; 44.473 ns] (CI 99.9%), Margin = 1.017 ns (2.34% of Mean) | |
Skewness = 0.29, Kurtosis = 3.27, MValue = 2.51 | |
// ***** BenchmarkRunner: Finish ***** | |
// * Export * | |
BenchmarkDotNet.Artifacts\results\PerformanceTests.CombinatorialNumberSystems.RankTests-report.csv | |
BenchmarkDotNet.Artifacts\results\PerformanceTests.CombinatorialNumberSystems.RankTests-report-github.md | |
BenchmarkDotNet.Artifacts\results\PerformanceTests.CombinatorialNumberSystems.RankTests-report.html | |
// * Detailed results * | |
RankTests.Rank: DefaultJob [n=5, k=3, kCombination=Int32[3]] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 48.608 ns, StdErr = 0.340 ns (0.70%), N = 100, StdDev = 3.399 ns | |
Min = 39.579 ns, Q1 = 46.258 ns, Median = 47.709 ns, Q3 = 51.825 ns, Max = 55.850 ns | |
IQR = 5.567 ns, LowerFence = 37.908 ns, UpperFence = 60.176 ns | |
ConfidenceInterval = [47.456 ns; 49.761 ns] (CI 99.9%), Margin = 1.153 ns (2.37% of Mean) | |
Skewness = 0.23, Kurtosis = 2.39, MValue = 2.76 | |
-------------------- Histogram -------------------- | |
[38.617 ns ; 40.540 ns) | @ | |
[40.540 ns ; 41.833 ns) | | |
[41.833 ns ; 43.850 ns) | @@@ | |
[43.850 ns ; 45.918 ns) | @@@@@@@@@@@@@@ | |
[45.918 ns ; 47.841 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
[47.841 ns ; 49.690 ns) | @@@@@@@@@@@@@@@ | |
[49.690 ns ; 51.937 ns) | @@@@@@@@ | |
[51.937 ns ; 53.860 ns) | @@@@@@@@@@@@@@@@@@ | |
[53.860 ns ; 55.882 ns) | @@@@@@@ | |
--------------------------------------------------- | |
RankTests.FastRank: DefaultJob [n=5, k=3, kCombination=Int32[3]] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 20.959 ns, StdErr = 0.190 ns (0.90%), N = 100, StdDev = 1.896 ns | |
Min = 16.757 ns, Q1 = 19.623 ns, Median = 20.772 ns, Q3 = 22.470 ns, Max = 24.550 ns | |
IQR = 2.846 ns, LowerFence = 15.354 ns, UpperFence = 26.739 ns | |
ConfidenceInterval = [20.316 ns; 21.602 ns] (CI 99.9%), Margin = 0.643 ns (3.07% of Mean) | |
Skewness = -0.06, Kurtosis = 2.44, MValue = 2.85 | |
-------------------- Histogram -------------------- | |
[16.531 ns ; 17.604 ns) | @@@@@@ | |
[17.604 ns ; 18.297 ns) | @ | |
[18.297 ns ; 19.349 ns) | @@@@@@@@ | |
[19.349 ns ; 20.619 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
[20.619 ns ; 21.691 ns) | @@@@@@@@@@@@@@@@ | |
[21.691 ns ; 22.445 ns) | @@@@@@@@@@ | |
[22.445 ns ; 23.517 ns) | @@@@@@@@@@@@@@@@@@@ | |
[23.517 ns ; 24.782 ns) | @@@@@@@ | |
--------------------------------------------------- | |
RankTests.Rank: DefaultJob [n=45, k=6, kCombination=Int32[6]] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 68.390 ns, StdErr = 0.356 ns (0.52%), N = 21, StdDev = 1.630 ns | |
Min = 63.800 ns, Q1 = 67.411 ns, Median = 68.603 ns, Q3 = 69.523 ns, Max = 70.817 ns | |
IQR = 2.112 ns, LowerFence = 64.243 ns, UpperFence = 72.691 ns | |
ConfidenceInterval = [67.021 ns; 69.759 ns] (CI 99.9%), Margin = 1.369 ns (2.00% of Mean) | |
Skewness = -0.88, Kurtosis = 3.77, MValue = 2 | |
-------------------- Histogram -------------------- | |
[63.025 ns ; 64.576 ns) | @ | |
[64.576 ns ; 66.534 ns) | @ | |
[66.534 ns ; 68.143 ns) | @@@@@@ | |
[68.143 ns ; 69.694 ns) | @@@@@@@@@@ | |
[69.694 ns ; 71.210 ns) | @@@ | |
--------------------------------------------------- | |
RankTests.FastRank: DefaultJob [n=45, k=6, kCombination=Int32[6]] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 43.165 ns, StdErr = 0.429 ns (0.99%), N = 100, StdDev = 4.287 ns | |
Min = 34.530 ns, Q1 = 41.126 ns, Median = 42.782 ns, Q3 = 47.191 ns, Max = 49.389 ns | |
IQR = 6.065 ns, LowerFence = 32.029 ns, UpperFence = 56.289 ns | |
ConfidenceInterval = [41.711 ns; 44.619 ns] (CI 99.9%), Margin = 1.454 ns (3.37% of Mean) | |
Skewness = -0.39, Kurtosis = 2.22, MValue = 3.76 | |
-------------------- Histogram -------------------- | |
[34.508 ns ; 36.933 ns) | @@@@@@@@@@@@@ | |
[36.933 ns ; 38.976 ns) | @@@@ | |
[38.976 ns ; 41.339 ns) | @@@@@@@@@@ | |
[41.339 ns ; 43.764 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
[43.764 ns ; 46.724 ns) | @@@@@@@ | |
[46.724 ns ; 49.148 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
[49.148 ns ; 50.601 ns) | @@@@ | |
--------------------------------------------------- | |
RankTests.Rank: DefaultJob [n=100, k=6, kCombination=Int32[6]] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 68.552 ns, StdErr = 0.383 ns (0.56%), N = 35, StdDev = 2.266 ns | |
Min = 61.024 ns, Q1 = 67.390 ns, Median = 68.790 ns, Q3 = 70.132 ns, Max = 72.016 ns | |
IQR = 2.742 ns, LowerFence = 63.276 ns, UpperFence = 74.245 ns | |
ConfidenceInterval = [67.173 ns; 69.931 ns] (CI 99.9%), Margin = 1.379 ns (2.01% of Mean) | |
Skewness = -1.06, Kurtosis = 4.56, MValue = 2 | |
-------------------- Histogram -------------------- | |
[60.115 ns ; 61.933 ns) | @ | |
[61.933 ns ; 63.291 ns) | | |
[63.291 ns ; 64.983 ns) | @ | |
[64.983 ns ; 66.783 ns) | @@@ | |
[66.783 ns ; 68.601 ns) | @@@@@@@@@@@ | |
[68.601 ns ; 70.896 ns) | @@@@@@@@@@@@@@@@ | |
[70.896 ns ; 72.925 ns) | @@@ | |
--------------------------------------------------- | |
RankTests.FastRank: DefaultJob [n=100, k=6, kCombination=Int32[6]] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 43.456 ns, StdErr = 0.299 ns (0.69%), N = 95, StdDev = 2.918 ns | |
Min = 34.446 ns, Q1 = 41.749 ns, Median = 42.704 ns, Q3 = 45.003 ns, Max = 50.221 ns | |
IQR = 3.254 ns, LowerFence = 36.868 ns, UpperFence = 49.884 ns | |
ConfidenceInterval = [42.439 ns; 44.473 ns] (CI 99.9%), Margin = 1.017 ns (2.34% of Mean) | |
Skewness = 0.29, Kurtosis = 3.27, MValue = 2.51 | |
-------------------- Histogram -------------------- | |
[33.607 ns ; 35.286 ns) | @ | |
[35.286 ns ; 36.964 ns) | | |
[36.964 ns ; 37.774 ns) | | |
[37.774 ns ; 39.485 ns) | @@@@ | |
[39.485 ns ; 41.191 ns) | @@@@@@@@ | |
[41.191 ns ; 42.870 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
[42.870 ns ; 44.552 ns) | @@@@@@@@@@@@@@@@@@@ | |
[44.552 ns ; 46.495 ns) | @@@@@@@@@@@@ | |
[46.495 ns ; 48.899 ns) | @@@@@@@@@@@@ | |
[48.899 ns ; 51.061 ns) | @@@ | |
--------------------------------------------------- | |
// * Summary * | |
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042 | |
Intel Core i5-1035G4 CPU 1.10GHz, 1 CPU, 8 logical and 4 physical cores | |
.NET Core SDK=5.0.104 | |
[Host] : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
DefaultJob : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
| Method | n | k | kCombination | Mean | Error | StdDev | Median | Ratio | RatioSD | Gen 0 | Gen 1 | Gen 2 | Allocated | | |
|--------- |---- |-- |------------- |---------:|---------:|---------:|---------:|------:|--------:|-------:|------:|------:|----------:| | |
| Rank | 5 | 3 | Int32[3] | 48.61 ns | 1.153 ns | 3.399 ns | 47.71 ns | 1.00 | 0.00 | 0.0229 | - | - | 72 B | | |
| FastRank | 5 | 3 | Int32[3] | 20.96 ns | 0.643 ns | 1.896 ns | 20.77 ns | 0.43 | 0.05 | 0.0102 | - | - | 32 B | | |
| | | | | | | | | | | | | | | | |
| Rank | 45 | 6 | Int32[6] | 68.39 ns | 1.369 ns | 1.630 ns | 68.60 ns | 1.00 | 0.00 | 0.0254 | - | - | 80 B | | |
| FastRank | 45 | 6 | Int32[6] | 43.17 ns | 1.454 ns | 4.287 ns | 42.78 ns | 0.66 | 0.05 | 0.0102 | - | - | 32 B | | |
| | | | | | | | | | | | | | | | |
| Rank | 100 | 6 | Int32[6] | 68.55 ns | 1.379 ns | 2.266 ns | 68.79 ns | 1.00 | 0.00 | 0.0254 | - | - | 80 B | | |
| FastRank | 100 | 6 | Int32[6] | 43.46 ns | 1.017 ns | 2.918 ns | 42.70 ns | 0.62 | 0.04 | 0.0102 | - | - | 32 B | | |
// * Warnings * | |
MultimodalDistribution | |
RankTests.FastRank: Default -> It seems that the distribution can have several modes (mValue = 2.85) | |
RankTests.FastRank: Default -> It seems that the distribution is bimodal (mValue = 3.76) | |
// * Hints * | |
Outliers | |
RankTests.Rank: Default -> 2 outliers were removed, 3 outliers were detected (65.40 ns, 76.84 ns, 77.54 ns) | |
RankTests.Rank: Default -> 4 outliers were removed, 5 outliers were detected (62.60 ns, 77.65 ns..82.33 ns) | |
RankTests.FastRank: Default -> 5 outliers were removed, 6 outliers were detected (35.94 ns, 52.98 ns..53.27 ns) | |
// * Legends * | |
n : Value of the 'n' parameter | |
k : Value of the 'k' parameter | |
kCombination : Value of the 'kCombination' parameter | |
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) | |
Ratio : Mean of the ratio distribution ([Current]/[Baseline]) | |
RatioSD : Standard deviation of the ratio distribution ([Current]/[Baseline]) | |
Gen 0 : GC Generation 0 collects per 1000 operations | |
Gen 1 : GC Generation 1 collects per 1000 operations | |
Gen 2 : GC Generation 2 collects per 1000 operations | |
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) | |
1 ns : 1 Nanosecond (0.000000001 sec) | |
// * Diagnostic Output - MemoryDiagnoser * | |
// ***** BenchmarkRunner: End ***** | |
// ** Remained 0 benchmark(s) to run ** | |
Run time: 00:06:39 (399.74 sec), executed benchmarks: 6 | |
Global total time: 00:06:44 (404.18 sec), executed benchmarks: 6 | |
// * Artifacts cleanup * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Validating benchmarks: | |
// ***** BenchmarkRunner: Start ***** | |
// ***** Found 6 benchmark(s) in total ***** | |
// ***** Building 1 exe(s) in Parallel: Start ***** | |
// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a | |
// command took 1.53s and exited with 0 | |
// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a | |
// command took 3.6s and exited with 0 | |
// ***** Done, took 00:00:05 (5.27 sec) ***** | |
// Found 6 benchmarks: | |
// UnRankTests.Unrank: DefaultJob [n=5, k=3] | |
// UnRankTests.FastUnrank: DefaultJob [n=5, k=3] | |
// UnRankTests.Unrank: DefaultJob [n=45, k=6] | |
// UnRankTests.FastUnrank: DefaultJob [n=45, k=6] | |
// UnRankTests.Unrank: DefaultJob [n=100, k=6] | |
// UnRankTests.FastUnrank: DefaultJob [n=100, k=6] | |
// ************************** | |
// Benchmark: UnRankTests.Unrank: DefaultJob [n=5, k=3] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "484488c8-1872-4c08-bc42-d7aff7418c0a.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.UnRankTests.Unrank(n: 5, k: 3)" --job "Default" --benchmarkId 0 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 406900.00 ns, 406.9000 us/op | |
WorkloadJitting 1: 1 op, 33123200.00 ns, 33.1232 ms/op | |
OverheadJitting 2: 16 op, 733700.00 ns, 45.8563 us/op | |
WorkloadJitting 2: 16 op, 742100.00 ns, 46.3813 us/op | |
WorkloadPilot 1: 16 op, 3600.00 ns, 225.0000 ns/op | |
WorkloadPilot 2: 32 op, 3000.00 ns, 93.7500 ns/op | |
WorkloadPilot 3: 64 op, 5100.00 ns, 79.6875 ns/op | |
WorkloadPilot 4: 128 op, 8100.00 ns, 63.2812 ns/op | |
WorkloadPilot 5: 256 op, 17100.00 ns, 66.7969 ns/op | |
WorkloadPilot 6: 512 op, 27300.00 ns, 53.3203 ns/op | |
WorkloadPilot 7: 1024 op, 55500.00 ns, 54.1992 ns/op | |
WorkloadPilot 8: 2048 op, 135000.00 ns, 65.9180 ns/op | |
WorkloadPilot 9: 4096 op, 247600.00 ns, 60.4492 ns/op | |
WorkloadPilot 10: 8192 op, 546400.00 ns, 66.6992 ns/op | |
WorkloadPilot 11: 16384 op, 1141200.00 ns, 69.6533 ns/op | |
WorkloadPilot 12: 32768 op, 2123200.00 ns, 64.7949 ns/op | |
WorkloadPilot 13: 65536 op, 3836800.00 ns, 58.5449 ns/op | |
WorkloadPilot 14: 131072 op, 7413700.00 ns, 56.5620 ns/op | |
WorkloadPilot 15: 262144 op, 14955800.00 ns, 57.0518 ns/op | |
WorkloadPilot 16: 524288 op, 31241200.00 ns, 59.5879 ns/op | |
WorkloadPilot 17: 1048576 op, 58091900.00 ns, 55.4008 ns/op | |
WorkloadPilot 18: 2097152 op, 110337700.00 ns, 52.6131 ns/op | |
WorkloadPilot 19: 4194304 op, 210666600.00 ns, 50.2268 ns/op | |
WorkloadPilot 20: 8388608 op, 420357200.00 ns, 50.1105 ns/op | |
WorkloadPilot 21: 16777216 op, 835890900.00 ns, 49.8230 ns/op | |
OverheadWarmup 1: 16777216 op, 53022100.00 ns, 3.1604 ns/op | |
OverheadWarmup 2: 16777216 op, 52957000.00 ns, 3.1565 ns/op | |
OverheadWarmup 3: 16777216 op, 53129300.00 ns, 3.1668 ns/op | |
OverheadWarmup 4: 16777216 op, 52856300.00 ns, 3.1505 ns/op | |
OverheadWarmup 5: 16777216 op, 52832400.00 ns, 3.1491 ns/op | |
OverheadWarmup 6: 16777216 op, 53838300.00 ns, 3.2090 ns/op | |
OverheadWarmup 7: 16777216 op, 53852500.00 ns, 3.2099 ns/op | |
OverheadWarmup 8: 16777216 op, 52578200.00 ns, 3.1339 ns/op | |
OverheadActual 1: 16777216 op, 52997600.00 ns, 3.1589 ns/op | |
OverheadActual 2: 16777216 op, 52915200.00 ns, 3.1540 ns/op | |
OverheadActual 3: 16777216 op, 52701400.00 ns, 3.1412 ns/op | |
OverheadActual 4: 16777216 op, 52764500.00 ns, 3.1450 ns/op | |
OverheadActual 5: 16777216 op, 52831000.00 ns, 3.1490 ns/op | |
OverheadActual 6: 16777216 op, 52942200.00 ns, 3.1556 ns/op | |
OverheadActual 7: 16777216 op, 52641600.00 ns, 3.1377 ns/op | |
OverheadActual 8: 16777216 op, 52762200.00 ns, 3.1449 ns/op | |
OverheadActual 9: 16777216 op, 52922900.00 ns, 3.1545 ns/op | |
OverheadActual 10: 16777216 op, 52700100.00 ns, 3.1412 ns/op | |
OverheadActual 11: 16777216 op, 52895100.00 ns, 3.1528 ns/op | |
OverheadActual 12: 16777216 op, 52806200.00 ns, 3.1475 ns/op | |
OverheadActual 13: 16777216 op, 53302200.00 ns, 3.1771 ns/op | |
OverheadActual 14: 16777216 op, 52801700.00 ns, 3.1472 ns/op | |
OverheadActual 15: 16777216 op, 53227700.00 ns, 3.1726 ns/op | |
WorkloadWarmup 1: 16777216 op, 836368900.00 ns, 49.8515 ns/op | |
WorkloadWarmup 2: 16777216 op, 840452900.00 ns, 50.0949 ns/op | |
WorkloadWarmup 3: 16777216 op, 838275900.00 ns, 49.9651 ns/op | |
WorkloadWarmup 4: 16777216 op, 839305700.00 ns, 50.0265 ns/op | |
WorkloadWarmup 5: 16777216 op, 832781600.00 ns, 49.6377 ns/op | |
WorkloadWarmup 6: 16777216 op, 850897800.00 ns, 50.7175 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 835505100.00 ns, 49.8000 ns/op | |
WorkloadActual 2: 16777216 op, 836634500.00 ns, 49.8673 ns/op | |
WorkloadActual 3: 16777216 op, 832088100.00 ns, 49.5963 ns/op | |
WorkloadActual 4: 16777216 op, 832708000.00 ns, 49.6333 ns/op | |
WorkloadActual 5: 16777216 op, 838468800.00 ns, 49.9766 ns/op | |
WorkloadActual 6: 16777216 op, 842360900.00 ns, 50.2086 ns/op | |
WorkloadActual 7: 16777216 op, 842152100.00 ns, 50.1962 ns/op | |
WorkloadActual 8: 16777216 op, 838515100.00 ns, 49.9794 ns/op | |
WorkloadActual 9: 16777216 op, 844807700.00 ns, 50.3545 ns/op | |
WorkloadActual 10: 16777216 op, 837197300.00 ns, 49.9008 ns/op | |
WorkloadActual 11: 16777216 op, 835849700.00 ns, 49.8205 ns/op | |
WorkloadActual 12: 16777216 op, 835503700.00 ns, 49.7999 ns/op | |
WorkloadActual 13: 16777216 op, 836267200.00 ns, 49.8454 ns/op | |
WorkloadActual 14: 16777216 op, 836797400.00 ns, 49.8770 ns/op | |
WorkloadActual 15: 16777216 op, 837233900.00 ns, 49.9030 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 782674100.00 ns, 46.6510 ns/op | |
WorkloadResult 2: 16777216 op, 783803500.00 ns, 46.7183 ns/op | |
WorkloadResult 3: 16777216 op, 779257100.00 ns, 46.4473 ns/op | |
WorkloadResult 4: 16777216 op, 779877000.00 ns, 46.4843 ns/op | |
WorkloadResult 5: 16777216 op, 785637800.00 ns, 46.8277 ns/op | |
WorkloadResult 6: 16777216 op, 789529900.00 ns, 47.0596 ns/op | |
WorkloadResult 7: 16777216 op, 789321100.00 ns, 47.0472 ns/op | |
WorkloadResult 8: 16777216 op, 785684100.00 ns, 46.8304 ns/op | |
WorkloadResult 9: 16777216 op, 784366300.00 ns, 46.7519 ns/op | |
WorkloadResult 10: 16777216 op, 783018700.00 ns, 46.6716 ns/op | |
WorkloadResult 11: 16777216 op, 782672700.00 ns, 46.6509 ns/op | |
WorkloadResult 12: 16777216 op, 783436200.00 ns, 46.6964 ns/op | |
WorkloadResult 13: 16777216 op, 783966400.00 ns, 46.7280 ns/op | |
WorkloadResult 14: 16777216 op, 784402900.00 ns, 46.7541 ns/op | |
GC: 385 0 0 1207959552 16777216 | |
Threading: 2 0 16777216 | |
// AfterAll | |
// Benchmark Process 18580 has exited with code 0 | |
Mean = 46.737 ns, StdErr = 0.046 ns (0.10%), N = 14, StdDev = 0.172 ns | |
Min = 46.447 ns, Q1 = 46.656 ns, Median = 46.723 ns, Q3 = 46.809 ns, Max = 47.060 ns | |
IQR = 0.153 ns, LowerFence = 46.426 ns, UpperFence = 47.039 ns | |
ConfidenceInterval = [46.542 ns; 46.932 ns] (CI 99.9%), Margin = 0.195 ns (0.42% of Mean) | |
Skewness = 0.32, Kurtosis = 2.54, MValue = 2 | |
// ************************** | |
// Benchmark: UnRankTests.FastUnrank: DefaultJob [n=5, k=3] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "484488c8-1872-4c08-bc42-d7aff7418c0a.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.UnRankTests.FastUnrank(n: 5, k: 3)" --job "Default" --benchmarkId 1 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 592900.00 ns, 592.9000 us/op | |
WorkloadJitting 1: 1 op, 1831400.00 ns, 1.8314 ms/op | |
OverheadJitting 2: 16 op, 725500.00 ns, 45.3438 us/op | |
WorkloadJitting 2: 16 op, 732900.00 ns, 45.8062 us/op | |
WorkloadPilot 1: 16 op, 2900.00 ns, 181.2500 ns/op | |
WorkloadPilot 2: 32 op, 2500.00 ns, 78.1250 ns/op | |
WorkloadPilot 3: 64 op, 4600.00 ns, 71.8750 ns/op | |
WorkloadPilot 4: 128 op, 7400.00 ns, 57.8125 ns/op | |
WorkloadPilot 5: 256 op, 15200.00 ns, 59.3750 ns/op | |
WorkloadPilot 6: 512 op, 44700.00 ns, 87.3047 ns/op | |
WorkloadPilot 7: 1024 op, 53200.00 ns, 51.9531 ns/op | |
WorkloadPilot 8: 2048 op, 132400.00 ns, 64.6484 ns/op | |
WorkloadPilot 9: 4096 op, 223700.00 ns, 54.6143 ns/op | |
WorkloadPilot 10: 8192 op, 551600.00 ns, 67.3340 ns/op | |
WorkloadPilot 11: 16384 op, 1012500.00 ns, 61.7981 ns/op | |
WorkloadPilot 12: 32768 op, 1952300.00 ns, 59.5795 ns/op | |
WorkloadPilot 13: 65536 op, 3528600.00 ns, 53.8422 ns/op | |
WorkloadPilot 14: 131072 op, 6579700.00 ns, 50.1991 ns/op | |
WorkloadPilot 15: 262144 op, 13595200.00 ns, 51.8616 ns/op | |
WorkloadPilot 16: 524288 op, 27410500.00 ns, 52.2814 ns/op | |
WorkloadPilot 17: 1048576 op, 53078600.00 ns, 50.6197 ns/op | |
WorkloadPilot 18: 2097152 op, 103635800.00 ns, 49.4174 ns/op | |
WorkloadPilot 19: 4194304 op, 196977100.00 ns, 46.9630 ns/op | |
WorkloadPilot 20: 8388608 op, 386764800.00 ns, 46.1060 ns/op | |
WorkloadPilot 21: 16777216 op, 785250600.00 ns, 46.8046 ns/op | |
OverheadWarmup 1: 16777216 op, 57188500.00 ns, 3.4087 ns/op | |
OverheadWarmup 2: 16777216 op, 57306200.00 ns, 3.4157 ns/op | |
OverheadWarmup 3: 16777216 op, 61969500.00 ns, 3.6937 ns/op | |
OverheadWarmup 4: 16777216 op, 57617100.00 ns, 3.4342 ns/op | |
OverheadWarmup 5: 16777216 op, 57761100.00 ns, 3.4428 ns/op | |
OverheadWarmup 6: 16777216 op, 57996500.00 ns, 3.4569 ns/op | |
OverheadWarmup 7: 16777216 op, 57885000.00 ns, 3.4502 ns/op | |
OverheadActual 1: 16777216 op, 59806500.00 ns, 3.5647 ns/op | |
OverheadActual 2: 16777216 op, 58147600.00 ns, 3.4659 ns/op | |
OverheadActual 3: 16777216 op, 58141300.00 ns, 3.4655 ns/op | |
OverheadActual 4: 16777216 op, 57949200.00 ns, 3.4540 ns/op | |
OverheadActual 5: 16777216 op, 58100600.00 ns, 3.4631 ns/op | |
OverheadActual 6: 16777216 op, 58384200.00 ns, 3.4800 ns/op | |
OverheadActual 7: 16777216 op, 62879400.00 ns, 3.7479 ns/op | |
OverheadActual 8: 16777216 op, 58276200.00 ns, 3.4735 ns/op | |
OverheadActual 9: 16777216 op, 58633800.00 ns, 3.4948 ns/op | |
OverheadActual 10: 16777216 op, 57853400.00 ns, 3.4483 ns/op | |
OverheadActual 11: 16777216 op, 58109100.00 ns, 3.4636 ns/op | |
OverheadActual 12: 16777216 op, 58200000.00 ns, 3.4690 ns/op | |
OverheadActual 13: 16777216 op, 58260300.00 ns, 3.4726 ns/op | |
OverheadActual 14: 16777216 op, 57620900.00 ns, 3.4345 ns/op | |
OverheadActual 15: 16777216 op, 58254100.00 ns, 3.4722 ns/op | |
WorkloadWarmup 1: 16777216 op, 776382200.00 ns, 46.2760 ns/op | |
WorkloadWarmup 2: 16777216 op, 780888000.00 ns, 46.5446 ns/op | |
WorkloadWarmup 3: 16777216 op, 776304600.00 ns, 46.2714 ns/op | |
WorkloadWarmup 4: 16777216 op, 774777900.00 ns, 46.1804 ns/op | |
WorkloadWarmup 5: 16777216 op, 794677700.00 ns, 47.3665 ns/op | |
WorkloadWarmup 6: 16777216 op, 780957000.00 ns, 46.5487 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 792368800.00 ns, 47.2289 ns/op | |
WorkloadActual 2: 16777216 op, 781051700.00 ns, 46.5543 ns/op | |
WorkloadActual 3: 16777216 op, 782846800.00 ns, 46.6613 ns/op | |
WorkloadActual 4: 16777216 op, 777867100.00 ns, 46.3645 ns/op | |
WorkloadActual 5: 16777216 op, 777397600.00 ns, 46.3365 ns/op | |
WorkloadActual 6: 16777216 op, 777128500.00 ns, 46.3205 ns/op | |
WorkloadActual 7: 16777216 op, 780250900.00 ns, 46.5066 ns/op | |
WorkloadActual 8: 16777216 op, 792696000.00 ns, 47.2484 ns/op | |
WorkloadActual 9: 16777216 op, 776349900.00 ns, 46.2741 ns/op | |
WorkloadActual 10: 16777216 op, 782940700.00 ns, 46.6669 ns/op | |
WorkloadActual 11: 16777216 op, 778998400.00 ns, 46.4319 ns/op | |
WorkloadActual 12: 16777216 op, 778737200.00 ns, 46.4164 ns/op | |
WorkloadActual 13: 16777216 op, 772065300.00 ns, 46.0187 ns/op | |
WorkloadActual 14: 16777216 op, 794451600.00 ns, 47.3530 ns/op | |
WorkloadActual 15: 16777216 op, 781485100.00 ns, 46.5801 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 722851700.00 ns, 43.0853 ns/op | |
WorkloadResult 2: 16777216 op, 724646800.00 ns, 43.1923 ns/op | |
WorkloadResult 3: 16777216 op, 719667100.00 ns, 42.8955 ns/op | |
WorkloadResult 4: 16777216 op, 719197600.00 ns, 42.8675 ns/op | |
WorkloadResult 5: 16777216 op, 718928500.00 ns, 42.8515 ns/op | |
WorkloadResult 6: 16777216 op, 722050900.00 ns, 43.0376 ns/op | |
WorkloadResult 7: 16777216 op, 718149900.00 ns, 42.8051 ns/op | |
WorkloadResult 8: 16777216 op, 724740700.00 ns, 43.1979 ns/op | |
WorkloadResult 9: 16777216 op, 720798400.00 ns, 42.9629 ns/op | |
WorkloadResult 10: 16777216 op, 720537200.00 ns, 42.9474 ns/op | |
WorkloadResult 11: 16777216 op, 713865300.00 ns, 42.5497 ns/op | |
WorkloadResult 12: 16777216 op, 723285100.00 ns, 43.1112 ns/op | |
GC: 384 0 0 1207959552 16777216 | |
Threading: 2 0 16777216 | |
// AfterAll | |
// Benchmark Process 16444 has exited with code 0 | |
Mean = 42.959 ns, StdErr = 0.053 ns (0.12%), N = 12, StdDev = 0.184 ns | |
Min = 42.550 ns, Q1 = 42.864 ns, Median = 42.955 ns, Q3 = 43.092 ns, Max = 43.198 ns | |
IQR = 0.228 ns, LowerFence = 42.521 ns, UpperFence = 43.434 ns | |
ConfidenceInterval = [42.723 ns; 43.194 ns] (CI 99.9%), Margin = 0.236 ns (0.55% of Mean) | |
Skewness = -0.56, Kurtosis = 2.61, MValue = 2 | |
// ************************** | |
// Benchmark: UnRankTests.Unrank: DefaultJob [n=45, k=6] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "484488c8-1872-4c08-bc42-d7aff7418c0a.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.UnRankTests.Unrank(n: 45, k: 6)" --job "Default" --benchmarkId 2 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 398100.00 ns, 398.1000 us/op | |
WorkloadJitting 1: 1 op, 2278500.00 ns, 2.2785 ms/op | |
OverheadJitting 2: 16 op, 983500.00 ns, 61.4688 us/op | |
WorkloadJitting 2: 16 op, 868500.00 ns, 54.2812 us/op | |
WorkloadPilot 1: 16 op, 4100.00 ns, 256.2500 ns/op | |
WorkloadPilot 2: 32 op, 5100.00 ns, 159.3750 ns/op | |
WorkloadPilot 3: 64 op, 8700.00 ns, 135.9375 ns/op | |
WorkloadPilot 4: 128 op, 18600.00 ns, 145.3125 ns/op | |
WorkloadPilot 5: 256 op, 35800.00 ns, 139.8438 ns/op | |
WorkloadPilot 6: 512 op, 65300.00 ns, 127.5391 ns/op | |
WorkloadPilot 7: 1024 op, 130600.00 ns, 127.5391 ns/op | |
WorkloadPilot 8: 2048 op, 326900.00 ns, 159.6191 ns/op | |
WorkloadPilot 9: 4096 op, 564300.00 ns, 137.7686 ns/op | |
WorkloadPilot 10: 8192 op, 1189100.00 ns, 145.1538 ns/op | |
WorkloadPilot 11: 16384 op, 2345000.00 ns, 143.1274 ns/op | |
WorkloadPilot 12: 32768 op, 5043500.00 ns, 153.9154 ns/op | |
WorkloadPilot 13: 65536 op, 8593500.00 ns, 131.1264 ns/op | |
WorkloadPilot 14: 131072 op, 17967000.00 ns, 137.0773 ns/op | |
WorkloadPilot 15: 262144 op, 35545100.00 ns, 135.5938 ns/op | |
WorkloadPilot 16: 524288 op, 68866300.00 ns, 131.3520 ns/op | |
WorkloadPilot 17: 1048576 op, 131996000.00 ns, 125.8812 ns/op | |
WorkloadPilot 18: 2097152 op, 264283700.00 ns, 126.0203 ns/op | |
WorkloadPilot 19: 4194304 op, 522109900.00 ns, 124.4807 ns/op | |
OverheadWarmup 1: 4194304 op, 14446800.00 ns, 3.4444 ns/op | |
OverheadWarmup 2: 4194304 op, 14674000.00 ns, 3.4986 ns/op | |
OverheadWarmup 3: 4194304 op, 14657700.00 ns, 3.4947 ns/op | |
OverheadWarmup 4: 4194304 op, 14513000.00 ns, 3.4602 ns/op | |
OverheadWarmup 5: 4194304 op, 14842400.00 ns, 3.5387 ns/op | |
OverheadWarmup 6: 4194304 op, 14619700.00 ns, 3.4856 ns/op | |
OverheadActual 1: 4194304 op, 14657000.00 ns, 3.4945 ns/op | |
OverheadActual 2: 4194304 op, 14435800.00 ns, 3.4418 ns/op | |
OverheadActual 3: 4194304 op, 15630800.00 ns, 3.7267 ns/op | |
OverheadActual 4: 4194304 op, 14502000.00 ns, 3.4575 ns/op | |
OverheadActual 5: 4194304 op, 14475800.00 ns, 3.4513 ns/op | |
OverheadActual 6: 4194304 op, 14567800.00 ns, 3.4732 ns/op | |
OverheadActual 7: 4194304 op, 14487900.00 ns, 3.4542 ns/op | |
OverheadActual 8: 4194304 op, 14422200.00 ns, 3.4385 ns/op | |
OverheadActual 9: 4194304 op, 14491400.00 ns, 3.4550 ns/op | |
OverheadActual 10: 4194304 op, 14662800.00 ns, 3.4959 ns/op | |
OverheadActual 11: 4194304 op, 14459300.00 ns, 3.4474 ns/op | |
OverheadActual 12: 4194304 op, 14726800.00 ns, 3.5111 ns/op | |
OverheadActual 13: 4194304 op, 14540500.00 ns, 3.4667 ns/op | |
OverheadActual 14: 4194304 op, 14458800.00 ns, 3.4472 ns/op | |
OverheadActual 15: 4194304 op, 14657700.00 ns, 3.4947 ns/op | |
WorkloadWarmup 1: 4194304 op, 522098400.00 ns, 124.4780 ns/op | |
WorkloadWarmup 2: 4194304 op, 525287300.00 ns, 125.2383 ns/op | |
WorkloadWarmup 3: 4194304 op, 528178800.00 ns, 125.9276 ns/op | |
WorkloadWarmup 4: 4194304 op, 523869200.00 ns, 124.9002 ns/op | |
WorkloadWarmup 5: 4194304 op, 531855100.00 ns, 126.8041 ns/op | |
WorkloadWarmup 6: 4194304 op, 523969500.00 ns, 124.9241 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 4194304 op, 526363500.00 ns, 125.4948 ns/op | |
WorkloadActual 2: 4194304 op, 524312700.00 ns, 125.0059 ns/op | |
WorkloadActual 3: 4194304 op, 527181200.00 ns, 125.6898 ns/op | |
WorkloadActual 4: 4194304 op, 523785900.00 ns, 124.8803 ns/op | |
WorkloadActual 5: 4194304 op, 532056000.00 ns, 126.8520 ns/op | |
WorkloadActual 6: 4194304 op, 530198300.00 ns, 126.4091 ns/op | |
WorkloadActual 7: 4194304 op, 527533100.00 ns, 125.7737 ns/op | |
WorkloadActual 8: 4194304 op, 535034000.00 ns, 127.5620 ns/op | |
WorkloadActual 9: 4194304 op, 518868800.00 ns, 123.7080 ns/op | |
WorkloadActual 10: 4194304 op, 534511600.00 ns, 127.4375 ns/op | |
WorkloadActual 11: 4194304 op, 525893700.00 ns, 125.3828 ns/op | |
WorkloadActual 12: 4194304 op, 522128100.00 ns, 124.4850 ns/op | |
WorkloadActual 13: 4194304 op, 523910800.00 ns, 124.9101 ns/op | |
WorkloadActual 14: 4194304 op, 524653900.00 ns, 125.0872 ns/op | |
WorkloadActual 15: 4194304 op, 520550600.00 ns, 124.1089 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 4194304 op, 511861500.00 ns, 122.0373 ns/op | |
WorkloadResult 2: 4194304 op, 509810700.00 ns, 121.5483 ns/op | |
WorkloadResult 3: 4194304 op, 512679200.00 ns, 122.2322 ns/op | |
WorkloadResult 4: 4194304 op, 509283900.00 ns, 121.4227 ns/op | |
WorkloadResult 5: 4194304 op, 517554000.00 ns, 123.3945 ns/op | |
WorkloadResult 6: 4194304 op, 515696300.00 ns, 122.9516 ns/op | |
WorkloadResult 7: 4194304 op, 513031100.00 ns, 122.3161 ns/op | |
WorkloadResult 8: 4194304 op, 520532000.00 ns, 124.1045 ns/op | |
WorkloadResult 9: 4194304 op, 504366800.00 ns, 120.2504 ns/op | |
WorkloadResult 10: 4194304 op, 520009600.00 ns, 123.9799 ns/op | |
WorkloadResult 11: 4194304 op, 511391700.00 ns, 121.9253 ns/op | |
WorkloadResult 12: 4194304 op, 507626100.00 ns, 121.0275 ns/op | |
WorkloadResult 13: 4194304 op, 509408800.00 ns, 121.4525 ns/op | |
WorkloadResult 14: 4194304 op, 510151900.00 ns, 121.6297 ns/op | |
WorkloadResult 15: 4194304 op, 506048600.00 ns, 120.6514 ns/op | |
GC: 106 0 0 335545696 4194304 | |
Threading: 2 0 4194304 | |
// AfterAll | |
// Benchmark Process 13596 has exited with code 0 | |
Mean = 122.062 ns, StdErr = 0.294 ns (0.24%), N = 15, StdDev = 1.137 ns | |
Min = 120.250 ns, Q1 = 121.438 ns, Median = 121.925 ns, Q3 = 122.634 ns, Max = 124.104 ns | |
IQR = 1.196 ns, LowerFence = 119.643 ns, UpperFence = 124.428 ns | |
ConfidenceInterval = [120.846 ns; 123.277 ns] (CI 99.9%), Margin = 1.216 ns (1.00% of Mean) | |
Skewness = 0.37, Kurtosis = 2.03, MValue = 2 | |
// ************************** | |
// Benchmark: UnRankTests.FastUnrank: DefaultJob [n=45, k=6] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "484488c8-1872-4c08-bc42-d7aff7418c0a.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.UnRankTests.FastUnrank(n: 45, k: 6)" --job "Default" --benchmarkId 3 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 427600.00 ns, 427.6000 us/op | |
WorkloadJitting 1: 1 op, 1937300.00 ns, 1.9373 ms/op | |
OverheadJitting 2: 16 op, 718600.00 ns, 44.9125 us/op | |
WorkloadJitting 2: 16 op, 1090500.00 ns, 68.1562 us/op | |
WorkloadPilot 1: 16 op, 5200.00 ns, 325.0000 ns/op | |
WorkloadPilot 2: 32 op, 6000.00 ns, 187.5000 ns/op | |
WorkloadPilot 3: 64 op, 9400.00 ns, 146.8750 ns/op | |
WorkloadPilot 4: 128 op, 16300.00 ns, 127.3438 ns/op | |
WorkloadPilot 5: 256 op, 49600.00 ns, 193.7500 ns/op | |
WorkloadPilot 6: 512 op, 65600.00 ns, 128.1250 ns/op | |
WorkloadPilot 7: 1024 op, 129200.00 ns, 126.1719 ns/op | |
WorkloadPilot 8: 2048 op, 298800.00 ns, 145.8984 ns/op | |
WorkloadPilot 9: 4096 op, 553500.00 ns, 135.1318 ns/op | |
WorkloadPilot 10: 8192 op, 1104700.00 ns, 134.8511 ns/op | |
WorkloadPilot 11: 16384 op, 2285800.00 ns, 139.5142 ns/op | |
WorkloadPilot 12: 32768 op, 5122900.00 ns, 156.3385 ns/op | |
WorkloadPilot 13: 65536 op, 8660400.00 ns, 132.1472 ns/op | |
WorkloadPilot 14: 131072 op, 16646400.00 ns, 127.0020 ns/op | |
WorkloadPilot 15: 262144 op, 34634500.00 ns, 132.1201 ns/op | |
WorkloadPilot 16: 524288 op, 67323200.00 ns, 128.4088 ns/op | |
WorkloadPilot 17: 1048576 op, 127940200.00 ns, 122.0133 ns/op | |
WorkloadPilot 18: 2097152 op, 258411100.00 ns, 123.2200 ns/op | |
WorkloadPilot 19: 4194304 op, 513568800.00 ns, 122.4443 ns/op | |
OverheadWarmup 1: 4194304 op, 14626200.00 ns, 3.4872 ns/op | |
OverheadWarmup 2: 4194304 op, 14337000.00 ns, 3.4182 ns/op | |
OverheadWarmup 3: 4194304 op, 14379300.00 ns, 3.4283 ns/op | |
OverheadWarmup 4: 4194304 op, 14794400.00 ns, 3.5273 ns/op | |
OverheadWarmup 5: 4194304 op, 14860200.00 ns, 3.5429 ns/op | |
OverheadWarmup 6: 4194304 op, 14458300.00 ns, 3.4471 ns/op | |
OverheadWarmup 7: 4194304 op, 14495800.00 ns, 3.4561 ns/op | |
OverheadWarmup 8: 4194304 op, 15043200.00 ns, 3.5866 ns/op | |
OverheadWarmup 9: 4194304 op, 14453700.00 ns, 3.4460 ns/op | |
OverheadActual 1: 4194304 op, 14566800.00 ns, 3.4730 ns/op | |
OverheadActual 2: 4194304 op, 14356900.00 ns, 3.4230 ns/op | |
OverheadActual 3: 4194304 op, 14375200.00 ns, 3.4273 ns/op | |
OverheadActual 4: 4194304 op, 15029400.00 ns, 3.5833 ns/op | |
OverheadActual 5: 4194304 op, 15008500.00 ns, 3.5783 ns/op | |
OverheadActual 6: 4194304 op, 14903300.00 ns, 3.5532 ns/op | |
OverheadActual 7: 4194304 op, 14461800.00 ns, 3.4480 ns/op | |
OverheadActual 8: 4194304 op, 14409700.00 ns, 3.4355 ns/op | |
OverheadActual 9: 4194304 op, 14812900.00 ns, 3.5317 ns/op | |
OverheadActual 10: 4194304 op, 15090700.00 ns, 3.5979 ns/op | |
OverheadActual 11: 4194304 op, 14491900.00 ns, 3.4551 ns/op | |
OverheadActual 12: 4194304 op, 15393300.00 ns, 3.6700 ns/op | |
OverheadActual 13: 4194304 op, 15274200.00 ns, 3.6417 ns/op | |
OverheadActual 14: 4194304 op, 14839500.00 ns, 3.5380 ns/op | |
OverheadActual 15: 4194304 op, 14457700.00 ns, 3.4470 ns/op | |
WorkloadWarmup 1: 4194304 op, 512989000.00 ns, 122.3061 ns/op | |
WorkloadWarmup 2: 4194304 op, 516676700.00 ns, 123.1853 ns/op | |
WorkloadWarmup 3: 4194304 op, 523863000.00 ns, 124.8987 ns/op | |
WorkloadWarmup 4: 4194304 op, 531441900.00 ns, 126.7056 ns/op | |
WorkloadWarmup 5: 4194304 op, 520865100.00 ns, 124.1839 ns/op | |
WorkloadWarmup 6: 4194304 op, 511145300.00 ns, 121.8665 ns/op | |
WorkloadWarmup 7: 4194304 op, 519881300.00 ns, 123.9494 ns/op | |
WorkloadWarmup 8: 4194304 op, 511100300.00 ns, 121.8558 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 4194304 op, 519961400.00 ns, 123.9685 ns/op | |
WorkloadActual 2: 4194304 op, 522258600.00 ns, 124.5162 ns/op | |
WorkloadActual 3: 4194304 op, 522649400.00 ns, 124.6093 ns/op | |
WorkloadActual 4: 4194304 op, 515337000.00 ns, 122.8659 ns/op | |
WorkloadActual 5: 4194304 op, 524536300.00 ns, 125.0592 ns/op | |
WorkloadActual 6: 4194304 op, 512430000.00 ns, 122.1728 ns/op | |
WorkloadActual 7: 4194304 op, 525451200.00 ns, 125.2773 ns/op | |
WorkloadActual 8: 4194304 op, 521660800.00 ns, 124.3736 ns/op | |
WorkloadActual 9: 4194304 op, 511889900.00 ns, 122.0441 ns/op | |
WorkloadActual 10: 4194304 op, 520170900.00 ns, 124.0184 ns/op | |
WorkloadActual 11: 4194304 op, 511042400.00 ns, 121.8420 ns/op | |
WorkloadActual 12: 4194304 op, 519274200.00 ns, 123.8046 ns/op | |
WorkloadActual 13: 4194304 op, 510950800.00 ns, 121.8202 ns/op | |
WorkloadActual 14: 4194304 op, 514531600.00 ns, 122.6739 ns/op | |
WorkloadActual 15: 4194304 op, 515985800.00 ns, 123.0206 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 4194304 op, 505148500.00 ns, 120.4368 ns/op | |
WorkloadResult 2: 4194304 op, 507445700.00 ns, 120.9845 ns/op | |
WorkloadResult 3: 4194304 op, 507836500.00 ns, 121.0777 ns/op | |
WorkloadResult 4: 4194304 op, 500524100.00 ns, 119.3342 ns/op | |
WorkloadResult 5: 4194304 op, 509723400.00 ns, 121.5275 ns/op | |
WorkloadResult 6: 4194304 op, 497617100.00 ns, 118.6412 ns/op | |
WorkloadResult 7: 4194304 op, 510638300.00 ns, 121.7457 ns/op | |
WorkloadResult 8: 4194304 op, 506847900.00 ns, 120.8420 ns/op | |
WorkloadResult 9: 4194304 op, 497077000.00 ns, 118.5124 ns/op | |
WorkloadResult 10: 4194304 op, 505358000.00 ns, 120.4867 ns/op | |
WorkloadResult 11: 4194304 op, 496229500.00 ns, 118.3103 ns/op | |
WorkloadResult 12: 4194304 op, 504461300.00 ns, 120.2729 ns/op | |
WorkloadResult 13: 4194304 op, 496137900.00 ns, 118.2885 ns/op | |
WorkloadResult 14: 4194304 op, 499718700.00 ns, 119.1422 ns/op | |
WorkloadResult 15: 4194304 op, 501172900.00 ns, 119.4889 ns/op | |
GC: 106 0 0 335550048 4194304 | |
Threading: 2 0 4194304 | |
// AfterAll | |
// Benchmark Process 15040 has exited with code 0 | |
Mean = 119.939 ns, StdErr = 0.308 ns (0.26%), N = 15, StdDev = 1.194 ns | |
Min = 118.288 ns, Q1 = 118.892 ns, Median = 120.273 ns, Q3 = 120.913 ns, Max = 121.746 ns | |
IQR = 2.022 ns, LowerFence = 115.859 ns, UpperFence = 123.946 ns | |
ConfidenceInterval = [118.663 ns; 121.216 ns] (CI 99.9%), Margin = 1.276 ns (1.06% of Mean) | |
Skewness = -0.05, Kurtosis = 1.4, MValue = 2 | |
// ************************** | |
// Benchmark: UnRankTests.Unrank: DefaultJob [n=100, k=6] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "484488c8-1872-4c08-bc42-d7aff7418c0a.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.UnRankTests.Unrank(n: 100, k: 6)" --job "Default" --benchmarkId 4 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 593100.00 ns, 593.1000 us/op | |
WorkloadJitting 1: 1 op, 2121800.00 ns, 2.1218 ms/op | |
OverheadJitting 2: 16 op, 717500.00 ns, 44.8438 us/op | |
WorkloadJitting 2: 16 op, 669300.00 ns, 41.8312 us/op | |
WorkloadPilot 1: 16 op, 4700.00 ns, 293.7500 ns/op | |
WorkloadPilot 2: 32 op, 5400.00 ns, 168.7500 ns/op | |
WorkloadPilot 3: 64 op, 10700.00 ns, 167.1875 ns/op | |
WorkloadPilot 4: 128 op, 18700.00 ns, 146.0938 ns/op | |
WorkloadPilot 5: 256 op, 43100.00 ns, 168.3594 ns/op | |
WorkloadPilot 6: 512 op, 69600.00 ns, 135.9375 ns/op | |
WorkloadPilot 7: 1024 op, 140000.00 ns, 136.7188 ns/op | |
WorkloadPilot 8: 2048 op, 321600.00 ns, 157.0312 ns/op | |
WorkloadPilot 9: 4096 op, 662700.00 ns, 161.7920 ns/op | |
WorkloadPilot 10: 8192 op, 1452400.00 ns, 177.2949 ns/op | |
WorkloadPilot 11: 16384 op, 2482400.00 ns, 151.5137 ns/op | |
WorkloadPilot 12: 32768 op, 4970800.00 ns, 151.6968 ns/op | |
WorkloadPilot 13: 65536 op, 9646900.00 ns, 147.2000 ns/op | |
WorkloadPilot 14: 131072 op, 18716200.00 ns, 142.7933 ns/op | |
WorkloadPilot 15: 262144 op, 37132500.00 ns, 141.6492 ns/op | |
WorkloadPilot 16: 524288 op, 73543700.00 ns, 140.2735 ns/op | |
WorkloadPilot 17: 1048576 op, 142992500.00 ns, 136.3683 ns/op | |
WorkloadPilot 18: 2097152 op, 287242800.00 ns, 136.9680 ns/op | |
WorkloadPilot 19: 4194304 op, 568879800.00 ns, 135.6315 ns/op | |
OverheadWarmup 1: 4194304 op, 14641800.00 ns, 3.4909 ns/op | |
OverheadWarmup 2: 4194304 op, 14444200.00 ns, 3.4438 ns/op | |
OverheadWarmup 3: 4194304 op, 14734800.00 ns, 3.5131 ns/op | |
OverheadWarmup 4: 4194304 op, 15189000.00 ns, 3.6213 ns/op | |
OverheadWarmup 5: 4194304 op, 15655900.00 ns, 3.7327 ns/op | |
OverheadWarmup 6: 4194304 op, 14601300.00 ns, 3.4812 ns/op | |
OverheadWarmup 7: 4194304 op, 15880100.00 ns, 3.7861 ns/op | |
OverheadWarmup 8: 4194304 op, 15340300.00 ns, 3.6574 ns/op | |
OverheadActual 1: 4194304 op, 14625000.00 ns, 3.4869 ns/op | |
OverheadActual 2: 4194304 op, 14632400.00 ns, 3.4886 ns/op | |
OverheadActual 3: 4194304 op, 14463500.00 ns, 3.4484 ns/op | |
OverheadActual 4: 4194304 op, 14520100.00 ns, 3.4619 ns/op | |
OverheadActual 5: 4194304 op, 14488500.00 ns, 3.4543 ns/op | |
OverheadActual 6: 4194304 op, 14327300.00 ns, 3.4159 ns/op | |
OverheadActual 7: 4194304 op, 14501900.00 ns, 3.4575 ns/op | |
OverheadActual 8: 4194304 op, 14446200.00 ns, 3.4442 ns/op | |
OverheadActual 9: 4194304 op, 14670700.00 ns, 3.4978 ns/op | |
OverheadActual 10: 4194304 op, 14532100.00 ns, 3.4647 ns/op | |
OverheadActual 11: 4194304 op, 14412100.00 ns, 3.4361 ns/op | |
OverheadActual 12: 4194304 op, 14401300.00 ns, 3.4335 ns/op | |
OverheadActual 13: 4194304 op, 14518300.00 ns, 3.4614 ns/op | |
OverheadActual 14: 4194304 op, 14843000.00 ns, 3.5388 ns/op | |
OverheadActual 15: 4194304 op, 16265600.00 ns, 3.8780 ns/op | |
WorkloadWarmup 1: 4194304 op, 576814300.00 ns, 137.5232 ns/op | |
WorkloadWarmup 2: 4194304 op, 576153700.00 ns, 137.3657 ns/op | |
WorkloadWarmup 3: 4194304 op, 569435200.00 ns, 135.7639 ns/op | |
WorkloadWarmup 4: 4194304 op, 570428400.00 ns, 136.0007 ns/op | |
WorkloadWarmup 5: 4194304 op, 580443100.00 ns, 138.3884 ns/op | |
WorkloadWarmup 6: 4194304 op, 572420200.00 ns, 136.4756 ns/op | |
WorkloadWarmup 7: 4194304 op, 577379300.00 ns, 137.6580 ns/op | |
WorkloadWarmup 8: 4194304 op, 570444200.00 ns, 136.0045 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 4194304 op, 572165500.00 ns, 136.4149 ns/op | |
WorkloadActual 2: 4194304 op, 570693800.00 ns, 136.0640 ns/op | |
WorkloadActual 3: 4194304 op, 570851000.00 ns, 136.1015 ns/op | |
WorkloadActual 4: 4194304 op, 580055900.00 ns, 138.2961 ns/op | |
WorkloadActual 5: 4194304 op, 572491200.00 ns, 136.4925 ns/op | |
WorkloadActual 6: 4194304 op, 575432400.00 ns, 137.1938 ns/op | |
WorkloadActual 7: 4194304 op, 577937600.00 ns, 137.7911 ns/op | |
WorkloadActual 8: 4194304 op, 577493900.00 ns, 137.6853 ns/op | |
WorkloadActual 9: 4194304 op, 762714400.00 ns, 181.8453 ns/op | |
WorkloadActual 10: 4194304 op, 579652500.00 ns, 138.1999 ns/op | |
WorkloadActual 11: 4194304 op, 572558900.00 ns, 136.5087 ns/op | |
WorkloadActual 12: 4194304 op, 581160300.00 ns, 138.5594 ns/op | |
WorkloadActual 13: 4194304 op, 576347400.00 ns, 137.4119 ns/op | |
WorkloadActual 14: 4194304 op, 571927900.00 ns, 136.3582 ns/op | |
WorkloadActual 15: 4194304 op, 575998600.00 ns, 137.3288 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 4194304 op, 557647200.00 ns, 132.9535 ns/op | |
WorkloadResult 2: 4194304 op, 556175500.00 ns, 132.6026 ns/op | |
WorkloadResult 3: 4194304 op, 556332700.00 ns, 132.6401 ns/op | |
WorkloadResult 4: 4194304 op, 565537600.00 ns, 134.8347 ns/op | |
WorkloadResult 5: 4194304 op, 557972900.00 ns, 133.0311 ns/op | |
WorkloadResult 6: 4194304 op, 560914100.00 ns, 133.7323 ns/op | |
WorkloadResult 7: 4194304 op, 563419300.00 ns, 134.3296 ns/op | |
WorkloadResult 8: 4194304 op, 562975600.00 ns, 134.2238 ns/op | |
WorkloadResult 9: 4194304 op, 565134200.00 ns, 134.7385 ns/op | |
WorkloadResult 10: 4194304 op, 558040600.00 ns, 133.0472 ns/op | |
WorkloadResult 11: 4194304 op, 566642000.00 ns, 135.0980 ns/op | |
WorkloadResult 12: 4194304 op, 561829100.00 ns, 133.9505 ns/op | |
WorkloadResult 13: 4194304 op, 557409600.00 ns, 132.8968 ns/op | |
WorkloadResult 14: 4194304 op, 561480300.00 ns, 133.8673 ns/op | |
GC: 106 0 0 335550048 4194304 | |
Threading: 2 0 4194304 | |
// AfterAll | |
// Benchmark Process 12384 has exited with code 0 | |
Mean = 133.710 ns, StdErr = 0.228 ns (0.17%), N = 14, StdDev = 0.854 ns | |
Min = 132.603 ns, Q1 = 132.973 ns, Median = 133.800 ns, Q3 = 134.303 ns, Max = 135.098 ns | |
IQR = 1.330 ns, LowerFence = 130.977 ns, UpperFence = 136.299 ns | |
ConfidenceInterval = [132.747 ns; 134.674 ns] (CI 99.9%), Margin = 0.964 ns (0.72% of Mean) | |
Skewness = 0.16, Kurtosis = 1.43, MValue = 2 | |
// ************************** | |
// Benchmark: UnRankTests.FastUnrank: DefaultJob [n=100, k=6] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "484488c8-1872-4c08-bc42-d7aff7418c0a.dll" --benchmarkName "PerformanceTests.CombinatorialNumberSystems.UnRankTests.FastUnrank(n: 100, k: 6)" --job "Default" --benchmarkId 5 in C:\dev\LottoGenerator\LG.Tests.BenchmarkDotNet\bin\Release\netcoreapp3.1\484488c8-1872-4c08-bc42-d7aff7418c0a\bin\Release\netcoreapp3.1 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 410700.00 ns, 410.7000 us/op | |
WorkloadJitting 1: 1 op, 1865300.00 ns, 1.8653 ms/op | |
OverheadJitting 2: 16 op, 1038400.00 ns, 64.9000 us/op | |
WorkloadJitting 2: 16 op, 745900.00 ns, 46.6187 us/op | |
WorkloadPilot 1: 16 op, 5000.00 ns, 312.5000 ns/op | |
WorkloadPilot 2: 32 op, 6500.00 ns, 203.1250 ns/op | |
WorkloadPilot 3: 64 op, 9900.00 ns, 154.6875 ns/op | |
WorkloadPilot 4: 128 op, 19800.00 ns, 154.6875 ns/op | |
WorkloadPilot 5: 256 op, 38600.00 ns, 150.7812 ns/op | |
WorkloadPilot 6: 512 op, 71700.00 ns, 140.0391 ns/op | |
WorkloadPilot 7: 1024 op, 144000.00 ns, 140.6250 ns/op | |
WorkloadPilot 8: 2048 op, 326200.00 ns, 159.2773 ns/op | |
WorkloadPilot 9: 4096 op, 607300.00 ns, 148.2666 ns/op | |
WorkloadPilot 10: 8192 op, 1212900.00 ns, 148.0591 ns/op | |
WorkloadPilot 11: 16384 op, 2511200.00 ns, 153.2715 ns/op | |
WorkloadPilot 12: 32768 op, 5345000.00 ns, 163.1165 ns/op | |
WorkloadPilot 13: 65536 op, 9344100.00 ns, 142.5797 ns/op | |
WorkloadPilot 14: 131072 op, 18956200.00 ns, 144.6243 ns/op | |
WorkloadPilot 15: 262144 op, 37456400.00 ns, 142.8848 ns/op | |
WorkloadPilot 16: 524288 op, 73338700.00 ns, 139.8825 ns/op | |
WorkloadPilot 17: 1048576 op, 143464200.00 ns, 136.8181 ns/op | |
WorkloadPilot 18: 2097152 op, 284971900.00 ns, 135.8852 ns/op | |
WorkloadPilot 19: 4194304 op, 579334200.00 ns, 138.1240 ns/op | |
OverheadWarmup 1: 4194304 op, 14721200.00 ns, 3.5098 ns/op | |
OverheadWarmup 2: 4194304 op, 14471400.00 ns, 3.4503 ns/op | |
OverheadWarmup 3: 4194304 op, 15066000.00 ns, 3.5920 ns/op | |
OverheadWarmup 4: 4194304 op, 14693100.00 ns, 3.5031 ns/op | |
OverheadWarmup 5: 4194304 op, 14557400.00 ns, 3.4708 ns/op | |
OverheadWarmup 6: 4194304 op, 14462300.00 ns, 3.4481 ns/op | |
OverheadWarmup 7: 4194304 op, 14482500.00 ns, 3.4529 ns/op | |
OverheadWarmup 8: 4194304 op, 14374700.00 ns, 3.4272 ns/op | |
OverheadActual 1: 4194304 op, 14527500.00 ns, 3.4636 ns/op | |
OverheadActual 2: 4194304 op, 14813400.00 ns, 3.5318 ns/op | |
OverheadActual 3: 4194304 op, 14553100.00 ns, 3.4697 ns/op | |
OverheadActual 4: 4194304 op, 14614900.00 ns, 3.4845 ns/op | |
OverheadActual 5: 4194304 op, 14471900.00 ns, 3.4504 ns/op | |
OverheadActual 6: 4194304 op, 14571900.00 ns, 3.4742 ns/op | |
OverheadActual 7: 4194304 op, 14341200.00 ns, 3.4192 ns/op | |
OverheadActual 8: 4194304 op, 14477300.00 ns, 3.4517 ns/op | |
OverheadActual 9: 4194304 op, 14388800.00 ns, 3.4306 ns/op | |
OverheadActual 10: 4194304 op, 14477600.00 ns, 3.4517 ns/op | |
OverheadActual 11: 4194304 op, 15308900.00 ns, 3.6499 ns/op | |
OverheadActual 12: 4194304 op, 14528600.00 ns, 3.4639 ns/op | |
OverheadActual 13: 4194304 op, 14537900.00 ns, 3.4661 ns/op | |
OverheadActual 14: 4194304 op, 15407700.00 ns, 3.6735 ns/op | |
OverheadActual 15: 4194304 op, 14869900.00 ns, 3.5453 ns/op | |
WorkloadWarmup 1: 4194304 op, 580760700.00 ns, 138.4641 ns/op | |
WorkloadWarmup 2: 4194304 op, 576554300.00 ns, 137.4613 ns/op | |
WorkloadWarmup 3: 4194304 op, 574201300.00 ns, 136.9003 ns/op | |
WorkloadWarmup 4: 4194304 op, 575960200.00 ns, 137.3196 ns/op | |
WorkloadWarmup 5: 4194304 op, 577918400.00 ns, 137.7865 ns/op | |
WorkloadWarmup 6: 4194304 op, 572538900.00 ns, 136.5039 ns/op | |
WorkloadWarmup 7: 4194304 op, 579916100.00 ns, 138.2628 ns/op | |
WorkloadWarmup 8: 4194304 op, 573877800.00 ns, 136.8231 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 4194304 op, 577204400.00 ns, 137.6163 ns/op | |
WorkloadActual 2: 4194304 op, 580608000.00 ns, 138.4277 ns/op | |
WorkloadActual 3: 4194304 op, 573343400.00 ns, 136.6957 ns/op | |
WorkloadActual 4: 4194304 op, 574820700.00 ns, 137.0479 ns/op | |
WorkloadActual 5: 4194304 op, 576053100.00 ns, 137.3418 ns/op | |
WorkloadActual 6: 4194304 op, 577501400.00 ns, 137.6871 ns/op | |
WorkloadActual 7: 4194304 op, 571874900.00 ns, 136.3456 ns/op | |
WorkloadActual 8: 4194304 op, 573001200.00 ns, 136.6141 ns/op | |
WorkloadActual 9: 4194304 op, 576679200.00 ns, 137.4910 ns/op | |
WorkloadActual 10: 4194304 op, 585404300.00 ns, 139.5713 ns/op | |
WorkloadActual 11: 4194304 op, 578037900.00 ns, 137.8150 ns/op | |
WorkloadActual 12: 4194304 op, 572601700.00 ns, 136.5189 ns/op | |
WorkloadActual 13: 4194304 op, 578322600.00 ns, 137.8829 ns/op | |
WorkloadActual 14: 4194304 op, 577917400.00 ns, 137.7862 ns/op | |
WorkloadActual 15: 4194304 op, 572330600.00 ns, 136.4542 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 4194304 op, 562666500.00 ns, 134.1501 ns/op | |
WorkloadResult 2: 4194304 op, 566070100.00 ns, 134.9616 ns/op | |
WorkloadResult 3: 4194304 op, 558805500.00 ns, 133.2296 ns/op | |
WorkloadResult 4: 4194304 op, 560282800.00 ns, 133.5818 ns/op | |
WorkloadResult 5: 4194304 op, 561515200.00 ns, 133.8757 ns/op | |
WorkloadResult 6: 4194304 op, 562963500.00 ns, 134.2210 ns/op | |
WorkloadResult 7: 4194304 op, 557337000.00 ns, 132.8795 ns/op | |
WorkloadResult 8: 4194304 op, 558463300.00 ns, 133.1480 ns/op | |
WorkloadResult 9: 4194304 op, 562141300.00 ns, 134.0249 ns/op | |
WorkloadResult 10: 4194304 op, 563500000.00 ns, 134.3489 ns/op | |
WorkloadResult 11: 4194304 op, 558063800.00 ns, 133.0528 ns/op | |
WorkloadResult 12: 4194304 op, 563784700.00 ns, 134.4167 ns/op | |
WorkloadResult 13: 4194304 op, 563379500.00 ns, 134.3201 ns/op | |
WorkloadResult 14: 4194304 op, 557792700.00 ns, 132.9881 ns/op | |
GC: 106 0 0 335550048 4194304 | |
Threading: 2 0 4194304 | |
// AfterAll | |
// Benchmark Process 22140 has exited with code 0 | |
Mean = 133.800 ns, StdErr = 0.174 ns (0.13%), N = 14, StdDev = 0.652 ns | |
Min = 132.879 ns, Q1 = 133.168 ns, Median = 133.950 ns, Q3 = 134.295 ns, Max = 134.962 ns | |
IQR = 1.127 ns, LowerFence = 131.478 ns, UpperFence = 135.986 ns | |
ConfidenceInterval = [133.065 ns; 134.535 ns] (CI 99.9%), Margin = 0.735 ns (0.55% of Mean) | |
Skewness = 0.01, Kurtosis = 1.56, MValue = 2 | |
// ***** BenchmarkRunner: Finish ***** | |
// * Export * | |
BenchmarkDotNet.Artifacts\results\PerformanceTests.CombinatorialNumberSystems.UnRankTests-report.csv | |
BenchmarkDotNet.Artifacts\results\PerformanceTests.CombinatorialNumberSystems.UnRankTests-report-github.md | |
BenchmarkDotNet.Artifacts\results\PerformanceTests.CombinatorialNumberSystems.UnRankTests-report.html | |
// * Detailed results * | |
UnRankTests.Unrank: DefaultJob [n=5, k=3] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 46.737 ns, StdErr = 0.046 ns (0.10%), N = 14, StdDev = 0.172 ns | |
Min = 46.447 ns, Q1 = 46.656 ns, Median = 46.723 ns, Q3 = 46.809 ns, Max = 47.060 ns | |
IQR = 0.153 ns, LowerFence = 46.426 ns, UpperFence = 47.039 ns | |
ConfidenceInterval = [46.542 ns; 46.932 ns] (CI 99.9%), Margin = 0.195 ns (0.42% of Mean) | |
Skewness = 0.32, Kurtosis = 2.54, MValue = 2 | |
-------------------- Histogram -------------------- | |
[46.353 ns ; 47.154 ns) | @@@@@@@@@@@@@@ | |
--------------------------------------------------- | |
UnRankTests.FastUnrank: DefaultJob [n=5, k=3] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 42.959 ns, StdErr = 0.053 ns (0.12%), N = 12, StdDev = 0.184 ns | |
Min = 42.550 ns, Q1 = 42.864 ns, Median = 42.955 ns, Q3 = 43.092 ns, Max = 43.198 ns | |
IQR = 0.228 ns, LowerFence = 42.521 ns, UpperFence = 43.434 ns | |
ConfidenceInterval = [42.723 ns; 43.194 ns] (CI 99.9%), Margin = 0.236 ns (0.55% of Mean) | |
Skewness = -0.56, Kurtosis = 2.61, MValue = 2 | |
-------------------- Histogram -------------------- | |
[42.444 ns ; 43.303 ns) | @@@@@@@@@@@@ | |
--------------------------------------------------- | |
UnRankTests.Unrank: DefaultJob [n=45, k=6] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 122.062 ns, StdErr = 0.294 ns (0.24%), N = 15, StdDev = 1.137 ns | |
Min = 120.250 ns, Q1 = 121.438 ns, Median = 121.925 ns, Q3 = 122.634 ns, Max = 124.104 ns | |
IQR = 1.196 ns, LowerFence = 119.643 ns, UpperFence = 124.428 ns | |
ConfidenceInterval = [120.846 ns; 123.277 ns] (CI 99.9%), Margin = 1.216 ns (1.00% of Mean) | |
Skewness = 0.37, Kurtosis = 2.03, MValue = 2 | |
-------------------- Histogram -------------------- | |
[119.645 ns ; 124.710 ns) | @@@@@@@@@@@@@@@ | |
--------------------------------------------------- | |
UnRankTests.FastUnrank: DefaultJob [n=45, k=6] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 119.939 ns, StdErr = 0.308 ns (0.26%), N = 15, StdDev = 1.194 ns | |
Min = 118.288 ns, Q1 = 118.892 ns, Median = 120.273 ns, Q3 = 120.913 ns, Max = 121.746 ns | |
IQR = 2.022 ns, LowerFence = 115.859 ns, UpperFence = 123.946 ns | |
ConfidenceInterval = [118.663 ns; 121.216 ns] (CI 99.9%), Margin = 1.276 ns (1.06% of Mean) | |
Skewness = -0.05, Kurtosis = 1.4, MValue = 2 | |
-------------------- Histogram -------------------- | |
[117.653 ns ; 122.381 ns) | @@@@@@@@@@@@@@@ | |
--------------------------------------------------- | |
UnRankTests.Unrank: DefaultJob [n=100, k=6] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 133.710 ns, StdErr = 0.228 ns (0.17%), N = 14, StdDev = 0.854 ns | |
Min = 132.603 ns, Q1 = 132.973 ns, Median = 133.800 ns, Q3 = 134.303 ns, Max = 135.098 ns | |
IQR = 1.330 ns, LowerFence = 130.977 ns, UpperFence = 136.299 ns | |
ConfidenceInterval = [132.747 ns; 134.674 ns] (CI 99.9%), Margin = 0.964 ns (0.72% of Mean) | |
Skewness = 0.16, Kurtosis = 1.43, MValue = 2 | |
-------------------- Histogram -------------------- | |
[132.137 ns ; 135.563 ns) | @@@@@@@@@@@@@@ | |
--------------------------------------------------- | |
UnRankTests.FastUnrank: DefaultJob [n=100, k=6] | |
Runtime = .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 133.800 ns, StdErr = 0.174 ns (0.13%), N = 14, StdDev = 0.652 ns | |
Min = 132.879 ns, Q1 = 133.168 ns, Median = 133.950 ns, Q3 = 134.295 ns, Max = 134.962 ns | |
IQR = 1.127 ns, LowerFence = 131.478 ns, UpperFence = 135.986 ns | |
ConfidenceInterval = [133.065 ns; 134.535 ns] (CI 99.9%), Margin = 0.735 ns (0.55% of Mean) | |
Skewness = 0.01, Kurtosis = 1.56, MValue = 2 | |
-------------------- Histogram -------------------- | |
[132.805 ns ; 135.317 ns) | @@@@@@@@@@@@@@ | |
--------------------------------------------------- | |
// * Summary * | |
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19042 | |
Intel Core i5-1035G4 CPU 1.10GHz, 1 CPU, 8 logical and 4 physical cores | |
.NET Core SDK=5.0.104 | |
[Host] : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
DefaultJob : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT | |
| Method | n | k | Mean | Error | StdDev | Ratio | Gen 0 | Gen 1 | Gen 2 | Allocated | | |
|----------- |---- |-- |----------:|---------:|---------:|------:|-------:|------:|------:|----------:| | |
| Unrank | 5 | 3 | 46.74 ns | 0.195 ns | 0.172 ns | 1.00 | 0.0229 | - | - | 72 B | | |
| FastUnrank | 5 | 3 | 42.96 ns | 0.236 ns | 0.184 ns | 0.92 | 0.0229 | - | - | 72 B | | |
| | | | | | | | | | | | | |
| Unrank | 45 | 6 | 122.06 ns | 1.216 ns | 1.137 ns | 1.00 | 0.0253 | - | - | 80 B | | |
| FastUnrank | 45 | 6 | 119.94 ns | 1.276 ns | 1.194 ns | 0.98 | 0.0253 | - | - | 80 B | | |
| | | | | | | | | | | | | |
| Unrank | 100 | 6 | 133.71 ns | 0.964 ns | 0.854 ns | 1.00 | 0.0253 | - | - | 80 B | | |
| FastUnrank | 100 | 6 | 133.80 ns | 0.735 ns | 0.652 ns | 1.00 | 0.0253 | - | - | 80 B | | |
// * Hints * | |
Outliers | |
UnRankTests.Unrank: Default -> 1 outlier was removed (50.35 ns) | |
UnRankTests.FastUnrank: Default -> 3 outliers were removed (47.23 ns..47.35 ns) | |
UnRankTests.Unrank: Default -> 1 outlier was removed (181.85 ns) | |
UnRankTests.FastUnrank: Default -> 1 outlier was removed (139.57 ns) | |
// * Legends * | |
n : Value of the 'n' parameter | |
k : Value of the 'k' parameter | |
Mean : Arithmetic mean of all measurements | |
Error : Half of 99.9% confidence interval | |
StdDev : Standard deviation of all measurements | |
Ratio : Mean of the ratio distribution ([Current]/[Baseline]) | |
Gen 0 : GC Generation 0 collects per 1000 operations | |
Gen 1 : GC Generation 1 collects per 1000 operations | |
Gen 2 : GC Generation 2 collects per 1000 operations | |
Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) | |
1 ns : 1 Nanosecond (0.000000001 sec) | |
// * Diagnostic Output - MemoryDiagnoser * | |
// ***** BenchmarkRunner: End ***** | |
// ** Remained 0 benchmark(s) to run ** | |
Run time: 00:01:41 (101.48 sec), executed benchmarks: 6 | |
Global total time: 00:01:46 (106.75 sec), executed benchmarks: 6 | |
// * Artifacts cleanup * |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using BenchmarkDotNet.Attributes; | |
using LG.App.Services.Combinations; | |
using System.Collections.Generic; | |
namespace PerformanceTests.CombinatorialNumberSystems | |
{ | |
[MemoryDiagnoser] | |
public class UnRankTests | |
{ | |
/// <summary>Test data for benchmark tests. The first digit is N, the second is K.</summary> | |
public IEnumerable<object[]> NKPairs() | |
{ | |
yield return new object[] { 5, 3 }; | |
yield return new object[] { 45, 6 }; | |
yield return new object[] { 100, 6 }; | |
} | |
[Benchmark(Baseline = true)] | |
[ArgumentsSource(nameof(NKPairs))] | |
public int[] Unrank(int n, int k) | |
{ | |
var cns = new CombinatorialNumberSystem(n, k); | |
return cns.Unrank(1); | |
} | |
[Benchmark] | |
[ArgumentsSource(nameof(NKPairs))] | |
public int[] FastUnrank(int n, int k) | |
{ | |
var fastCns = new FastCombinatorialNumberSystem(n, k); | |
return fastCns.Unrank(1); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment