Created
November 19, 2019 10:12
-
-
Save magnusbakken/36296690dc44123a1bd944d6c4f71eb0 to your computer and use it in GitHub Desktop.
Comparison of different methods of creating hex output for a byte array with Benchmark.NET.
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; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Text; | |
using BenchmarkDotNet.Attributes; | |
namespace HexBenchmark | |
{ | |
public class Algorithms | |
{ | |
[Params(new byte[] { 0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef })] | |
public byte[] ByteArrayInput { get; set; } | |
[Benchmark] | |
public string WithStringJoin() | |
{ | |
return string.Join("", ByteArrayInput.Select(b => b.ToString("x2"))); | |
} | |
[Benchmark] | |
public string WithStringBuilder() | |
{ | |
var builder = new StringBuilder(ByteArrayInput.Length * 2); | |
foreach (var @byte in ByteArrayInput) | |
builder.Append(@byte.ToString("x2")); | |
return builder.ToString(); | |
} | |
[Benchmark] | |
public string WithStringBuilderForInt() | |
{ | |
var l = ByteArrayInput.Length; | |
var builder = new StringBuilder(l * 2); | |
for (var i = 0; i < l; i++) | |
builder.Append(ByteArrayInput[i].ToString("x2")); | |
return builder.ToString(); | |
} | |
[Benchmark] | |
public string WithBitConverter() | |
{ | |
return BitConverter.ToString(ByteArrayInput).Replace("-", null).ToLowerInvariant(); | |
} | |
[Benchmark] | |
public string WithCharArray() | |
{ | |
char Hex(int b) => b < 10 ? (char)(b + '0') : (char)(b - 10 + 'a'); | |
var l = ByteArrayInput.Length; | |
var result = new char[l * 2]; | |
for (var i = 0; i < l; i++) | |
{ | |
var b = ByteArrayInput[i]; | |
var i2 = i * 2; | |
result[i2] = Hex(b / 16); | |
result[i2 + 1] = Hex(b % 16); | |
} | |
return new string(result); | |
} | |
[Benchmark] | |
public string WithBitShifts() | |
{ | |
char Hex(int b) => b < 10 ? (char)(b + '0') : (char)(b - 10 + 'a'); | |
var l = ByteArrayInput.Length; | |
var result = new char[l * 2]; | |
for (var i = 0; i < l; i++) | |
{ | |
var b = ByteArrayInput[i]; | |
var i2 = i * 2; | |
result[i2] = Hex(b >> 4); | |
result[i2 + 1] = Hex(b & 15); | |
} | |
return new string(result); | |
} | |
Dictionary<byte, (char, char)> Mapping = new Dictionary<byte, (char, char)>() | |
{ | |
[0x00] = ('0', '0'), | |
[0x01] = ('0', '1'), | |
[0x02] = ('0', '2'), | |
[0x03] = ('0', '3'), | |
[0x04] = ('0', '4'), | |
[0x05] = ('0', '5'), | |
[0x06] = ('0', '6'), | |
[0x07] = ('0', '7'), | |
[0x08] = ('0', '8'), | |
[0x09] = ('0', '9'), | |
[0x0a] = ('0', 'a'), | |
[0x0b] = ('0', 'b'), | |
[0x0c] = ('0', 'c'), | |
[0x0d] = ('0', 'd'), | |
[0x0e] = ('0', 'e'), | |
[0x0f] = ('0', 'f'), | |
[0x10] = ('1', '0'), | |
[0x11] = ('1', '1'), | |
[0x12] = ('1', '2'), | |
[0x13] = ('1', '3'), | |
[0x14] = ('1', '4'), | |
[0x15] = ('1', '5'), | |
[0x16] = ('1', '6'), | |
[0x17] = ('1', '7'), | |
[0x18] = ('1', '8'), | |
[0x19] = ('1', '9'), | |
[0x1a] = ('1', 'a'), | |
[0x1b] = ('1', 'b'), | |
[0x1c] = ('1', 'c'), | |
[0x1d] = ('1', 'd'), | |
[0x1e] = ('1', 'e'), | |
[0x1f] = ('1', 'f'), | |
[0x20] = ('2', '0'), | |
[0x21] = ('2', '1'), | |
[0x22] = ('2', '2'), | |
[0x23] = ('2', '3'), | |
[0x24] = ('2', '4'), | |
[0x25] = ('2', '5'), | |
[0x26] = ('2', '6'), | |
[0x27] = ('2', '7'), | |
[0x28] = ('2', '8'), | |
[0x29] = ('2', '9'), | |
[0x2a] = ('2', 'a'), | |
[0x2b] = ('2', 'b'), | |
[0x2c] = ('2', 'c'), | |
[0x2d] = ('2', 'd'), | |
[0x2e] = ('2', 'e'), | |
[0x2f] = ('2', 'f'), | |
[0x30] = ('3', '0'), | |
[0x31] = ('3', '1'), | |
[0x32] = ('3', '2'), | |
[0x33] = ('3', '3'), | |
[0x34] = ('3', '4'), | |
[0x35] = ('3', '5'), | |
[0x36] = ('3', '6'), | |
[0x37] = ('3', '7'), | |
[0x38] = ('3', '8'), | |
[0x39] = ('3', '9'), | |
[0x3a] = ('3', 'a'), | |
[0x3b] = ('3', 'b'), | |
[0x3c] = ('3', 'c'), | |
[0x3d] = ('3', 'd'), | |
[0x3e] = ('3', 'e'), | |
[0x3f] = ('3', 'f'), | |
[0x40] = ('4', '0'), | |
[0x41] = ('4', '1'), | |
[0x42] = ('4', '2'), | |
[0x43] = ('4', '3'), | |
[0x44] = ('4', '4'), | |
[0x45] = ('4', '5'), | |
[0x46] = ('4', '6'), | |
[0x47] = ('4', '7'), | |
[0x48] = ('4', '8'), | |
[0x49] = ('4', '9'), | |
[0x4a] = ('4', 'a'), | |
[0x4b] = ('4', 'b'), | |
[0x4c] = ('4', 'c'), | |
[0x4d] = ('4', 'd'), | |
[0x4e] = ('4', 'e'), | |
[0x4f] = ('4', 'f'), | |
[0x50] = ('5', '0'), | |
[0x51] = ('5', '1'), | |
[0x52] = ('5', '2'), | |
[0x53] = ('5', '3'), | |
[0x54] = ('5', '4'), | |
[0x55] = ('5', '5'), | |
[0x56] = ('5', '6'), | |
[0x57] = ('5', '7'), | |
[0x58] = ('5', '8'), | |
[0x59] = ('5', '9'), | |
[0x5a] = ('5', 'a'), | |
[0x5b] = ('5', 'b'), | |
[0x5c] = ('5', 'c'), | |
[0x5d] = ('5', 'd'), | |
[0x5e] = ('5', 'e'), | |
[0x5f] = ('5', 'f'), | |
[0x60] = ('6', '0'), | |
[0x61] = ('6', '1'), | |
[0x62] = ('6', '2'), | |
[0x63] = ('6', '3'), | |
[0x64] = ('6', '4'), | |
[0x65] = ('6', '5'), | |
[0x66] = ('6', '6'), | |
[0x67] = ('6', '7'), | |
[0x68] = ('6', '8'), | |
[0x69] = ('6', '9'), | |
[0x6a] = ('6', 'a'), | |
[0x6b] = ('6', 'b'), | |
[0x6c] = ('6', 'c'), | |
[0x6d] = ('6', 'd'), | |
[0x6e] = ('6', 'e'), | |
[0x6f] = ('6', 'f'), | |
[0x70] = ('7', '0'), | |
[0x71] = ('7', '1'), | |
[0x72] = ('7', '2'), | |
[0x73] = ('7', '3'), | |
[0x74] = ('7', '4'), | |
[0x75] = ('7', '5'), | |
[0x76] = ('7', '6'), | |
[0x77] = ('7', '7'), | |
[0x78] = ('7', '8'), | |
[0x79] = ('7', '9'), | |
[0x7a] = ('7', 'a'), | |
[0x7b] = ('7', 'b'), | |
[0x7c] = ('7', 'c'), | |
[0x7d] = ('7', 'd'), | |
[0x7e] = ('7', 'e'), | |
[0x7f] = ('7', 'f'), | |
[0x80] = ('8', '0'), | |
[0x81] = ('8', '1'), | |
[0x82] = ('8', '2'), | |
[0x83] = ('8', '3'), | |
[0x84] = ('8', '4'), | |
[0x85] = ('8', '5'), | |
[0x86] = ('8', '6'), | |
[0x87] = ('8', '7'), | |
[0x88] = ('8', '8'), | |
[0x89] = ('8', '9'), | |
[0x8a] = ('8', 'a'), | |
[0x8b] = ('8', 'b'), | |
[0x8c] = ('8', 'c'), | |
[0x8d] = ('8', 'd'), | |
[0x8e] = ('8', 'e'), | |
[0x8f] = ('8', 'f'), | |
[0x90] = ('9', '0'), | |
[0x91] = ('9', '1'), | |
[0x92] = ('9', '2'), | |
[0x93] = ('9', '3'), | |
[0x94] = ('9', '4'), | |
[0x95] = ('9', '5'), | |
[0x96] = ('9', '6'), | |
[0x97] = ('9', '7'), | |
[0x98] = ('9', '8'), | |
[0x99] = ('9', '9'), | |
[0x9a] = ('9', 'a'), | |
[0x9b] = ('9', 'b'), | |
[0x9c] = ('9', 'c'), | |
[0x9d] = ('9', 'd'), | |
[0x9e] = ('9', 'e'), | |
[0x9f] = ('9', 'f'), | |
[0xa0] = ('a', '0'), | |
[0xa1] = ('a', '1'), | |
[0xa2] = ('a', '2'), | |
[0xa3] = ('a', '3'), | |
[0xa4] = ('a', '4'), | |
[0xa5] = ('a', '5'), | |
[0xa6] = ('a', '6'), | |
[0xa7] = ('a', '7'), | |
[0xa8] = ('a', '8'), | |
[0xa9] = ('a', '9'), | |
[0xaa] = ('a', 'a'), | |
[0xab] = ('a', 'b'), | |
[0xac] = ('a', 'c'), | |
[0xad] = ('a', 'd'), | |
[0xae] = ('a', 'e'), | |
[0xaf] = ('a', 'f'), | |
[0xb0] = ('b', '0'), | |
[0xb1] = ('b', '1'), | |
[0xb2] = ('b', '2'), | |
[0xb3] = ('b', '3'), | |
[0xb4] = ('b', '4'), | |
[0xb5] = ('b', '5'), | |
[0xb6] = ('b', '6'), | |
[0xb7] = ('b', '7'), | |
[0xb8] = ('b', '8'), | |
[0xb9] = ('b', '9'), | |
[0xba] = ('b', 'a'), | |
[0xbb] = ('b', 'b'), | |
[0xbc] = ('b', 'c'), | |
[0xbd] = ('b', 'd'), | |
[0xbe] = ('b', 'e'), | |
[0xbf] = ('b', 'f'), | |
[0xc0] = ('c', '0'), | |
[0xc1] = ('c', '1'), | |
[0xc2] = ('c', '2'), | |
[0xc3] = ('c', '3'), | |
[0xc4] = ('c', '4'), | |
[0xc5] = ('c', '5'), | |
[0xc6] = ('c', '6'), | |
[0xc7] = ('c', '7'), | |
[0xc8] = ('c', '8'), | |
[0xc9] = ('c', '9'), | |
[0xca] = ('c', 'a'), | |
[0xcb] = ('c', 'b'), | |
[0xcc] = ('c', 'c'), | |
[0xcd] = ('c', 'd'), | |
[0xce] = ('c', 'e'), | |
[0xcf] = ('c', 'f'), | |
[0xd0] = ('d', '0'), | |
[0xd1] = ('d', '1'), | |
[0xd2] = ('d', '2'), | |
[0xd3] = ('d', '3'), | |
[0xd4] = ('d', '4'), | |
[0xd5] = ('d', '5'), | |
[0xd6] = ('d', '6'), | |
[0xd7] = ('d', '7'), | |
[0xd8] = ('d', '8'), | |
[0xd9] = ('d', '9'), | |
[0xda] = ('d', 'a'), | |
[0xdb] = ('d', 'b'), | |
[0xdc] = ('d', 'c'), | |
[0xdd] = ('d', 'd'), | |
[0xde] = ('d', 'e'), | |
[0xdf] = ('d', 'f'), | |
[0xe0] = ('e', '0'), | |
[0xe1] = ('e', '1'), | |
[0xe2] = ('e', '2'), | |
[0xe3] = ('e', '3'), | |
[0xe4] = ('e', '4'), | |
[0xe5] = ('e', '5'), | |
[0xe6] = ('e', '6'), | |
[0xe7] = ('e', '7'), | |
[0xe8] = ('e', '8'), | |
[0xe9] = ('e', '9'), | |
[0xea] = ('e', 'a'), | |
[0xeb] = ('e', 'b'), | |
[0xec] = ('e', 'c'), | |
[0xed] = ('e', 'd'), | |
[0xee] = ('e', 'e'), | |
[0xef] = ('e', 'f'), | |
[0xf0] = ('f', '0'), | |
[0xf1] = ('f', '1'), | |
[0xf2] = ('f', '2'), | |
[0xf3] = ('f', '3'), | |
[0xf4] = ('f', '4'), | |
[0xf5] = ('f', '5'), | |
[0xf6] = ('f', '6'), | |
[0xf7] = ('f', '7'), | |
[0xf8] = ('f', '8'), | |
[0xf9] = ('f', '9'), | |
[0xfa] = ('f', 'a'), | |
[0xfb] = ('f', 'b'), | |
[0xfc] = ('f', 'c'), | |
[0xfd] = ('f', 'd'), | |
[0xfe] = ('f', 'e'), | |
[0xff] = ('f', 'f'), | |
}; | |
[Benchmark] | |
public string WithLookupTable() | |
{ | |
var result = new char[ByteArrayInput.Length * 2]; | |
for (var i = 0; i < ByteArrayInput.Length; i++) | |
{ | |
var b = ByteArrayInput[i]; | |
var i2 = i * 2; | |
var (c1, c2) = Mapping[b]; | |
result[i2] = c1; | |
result[i2 + 1] = c2; | |
} | |
return new string(result); | |
} | |
(char, char)[] ByteValues = new[] | |
{ | |
('0', '0'), | |
('0', '1'), | |
('0', '2'), | |
('0', '3'), | |
('0', '4'), | |
('0', '5'), | |
('0', '6'), | |
('0', '7'), | |
('0', '8'), | |
('0', '9'), | |
('0', 'a'), | |
('0', 'b'), | |
('0', 'c'), | |
('0', 'd'), | |
('0', 'e'), | |
('0', 'f'), | |
('1', '0'), | |
('1', '1'), | |
('1', '2'), | |
('1', '3'), | |
('1', '4'), | |
('1', '5'), | |
('1', '6'), | |
('1', '7'), | |
('1', '8'), | |
('1', '9'), | |
('1', 'a'), | |
('1', 'b'), | |
('1', 'c'), | |
('1', 'd'), | |
('1', 'e'), | |
('1', 'f'), | |
('2', '0'), | |
('2', '1'), | |
('2', '2'), | |
('2', '3'), | |
('2', '4'), | |
('2', '5'), | |
('2', '6'), | |
('2', '7'), | |
('2', '8'), | |
('2', '9'), | |
('2', 'a'), | |
('2', 'b'), | |
('2', 'c'), | |
('2', 'd'), | |
('2', 'e'), | |
('2', 'f'), | |
('3', '0'), | |
('3', '1'), | |
('3', '2'), | |
('3', '3'), | |
('3', '4'), | |
('3', '5'), | |
('3', '6'), | |
('3', '7'), | |
('3', '8'), | |
('3', '9'), | |
('3', 'a'), | |
('3', 'b'), | |
('3', 'c'), | |
('3', 'd'), | |
('3', 'e'), | |
('3', 'f'), | |
('4', '0'), | |
('4', '1'), | |
('4', '2'), | |
('4', '3'), | |
('4', '4'), | |
('4', '5'), | |
('4', '6'), | |
('4', '7'), | |
('4', '8'), | |
('4', '9'), | |
('4', 'a'), | |
('4', 'b'), | |
('4', 'c'), | |
('4', 'd'), | |
('4', 'e'), | |
('4', 'f'), | |
('5', '0'), | |
('5', '1'), | |
('5', '2'), | |
('5', '3'), | |
('5', '4'), | |
('5', '5'), | |
('5', '6'), | |
('5', '7'), | |
('5', '8'), | |
('5', '9'), | |
('5', 'a'), | |
('5', 'b'), | |
('5', 'c'), | |
('5', 'd'), | |
('5', 'e'), | |
('5', 'f'), | |
('6', '0'), | |
('6', '1'), | |
('6', '2'), | |
('6', '3'), | |
('6', '4'), | |
('6', '5'), | |
('6', '6'), | |
('6', '7'), | |
('6', '8'), | |
('6', '9'), | |
('6', 'a'), | |
('6', 'b'), | |
('6', 'c'), | |
('6', 'd'), | |
('6', 'e'), | |
('6', 'f'), | |
('7', '0'), | |
('7', '1'), | |
('7', '2'), | |
('7', '3'), | |
('7', '4'), | |
('7', '5'), | |
('7', '6'), | |
('7', '7'), | |
('7', '8'), | |
('7', '9'), | |
('7', 'a'), | |
('7', 'b'), | |
('7', 'c'), | |
('7', 'd'), | |
('7', 'e'), | |
('7', 'f'), | |
('8', '0'), | |
('8', '1'), | |
('8', '2'), | |
('8', '3'), | |
('8', '4'), | |
('8', '5'), | |
('8', '6'), | |
('8', '7'), | |
('8', '8'), | |
('8', '9'), | |
('8', 'a'), | |
('8', 'b'), | |
('8', 'c'), | |
('8', 'd'), | |
('8', 'e'), | |
('8', 'f'), | |
('9', '0'), | |
('9', '1'), | |
('9', '2'), | |
('9', '3'), | |
('9', '4'), | |
('9', '5'), | |
('9', '6'), | |
('9', '7'), | |
('9', '8'), | |
('9', '9'), | |
('9', 'a'), | |
('9', 'b'), | |
('9', 'c'), | |
('9', 'd'), | |
('9', 'e'), | |
('9', 'f'), | |
('a', '0'), | |
('a', '1'), | |
('a', '2'), | |
('a', '3'), | |
('a', '4'), | |
('a', '5'), | |
('a', '6'), | |
('a', '7'), | |
('a', '8'), | |
('a', '9'), | |
('a', 'a'), | |
('a', 'b'), | |
('a', 'c'), | |
('a', 'd'), | |
('a', 'e'), | |
('a', 'f'), | |
('b', '0'), | |
('b', '1'), | |
('b', '2'), | |
('b', '3'), | |
('b', '4'), | |
('b', '5'), | |
('b', '6'), | |
('b', '7'), | |
('b', '8'), | |
('b', '9'), | |
('b', 'a'), | |
('b', 'b'), | |
('b', 'c'), | |
('b', 'd'), | |
('b', 'e'), | |
('b', 'f'), | |
('c', '0'), | |
('c', '1'), | |
('c', '2'), | |
('c', '3'), | |
('c', '4'), | |
('c', '5'), | |
('c', '6'), | |
('c', '7'), | |
('c', '8'), | |
('c', '9'), | |
('c', 'a'), | |
('c', 'b'), | |
('c', 'c'), | |
('c', 'd'), | |
('c', 'e'), | |
('c', 'f'), | |
('d', '0'), | |
('d', '1'), | |
('d', '2'), | |
('d', '3'), | |
('d', '4'), | |
('d', '5'), | |
('d', '6'), | |
('d', '7'), | |
('d', '8'), | |
('d', '9'), | |
('d', 'a'), | |
('d', 'b'), | |
('d', 'c'), | |
('d', 'd'), | |
('d', 'e'), | |
('d', 'f'), | |
('e', '0'), | |
('e', '1'), | |
('e', '2'), | |
('e', '3'), | |
('e', '4'), | |
('e', '5'), | |
('e', '6'), | |
('e', '7'), | |
('e', '8'), | |
('e', '9'), | |
('e', 'a'), | |
('e', 'b'), | |
('e', 'c'), | |
('e', 'd'), | |
('e', 'e'), | |
('e', 'f'), | |
('f', '0'), | |
('f', '1'), | |
('f', '2'), | |
('f', '3'), | |
('f', '4'), | |
('f', '5'), | |
('f', '6'), | |
('f', '7'), | |
('f', '8'), | |
('f', '9'), | |
('f', 'a'), | |
('f', 'b'), | |
('f', 'c'), | |
('f', 'd'), | |
('f', 'e'), | |
('f', 'f'), | |
}; | |
[Benchmark] | |
public string WithLookupArray() | |
{ | |
var result = new char[ByteArrayInput.Length * 2]; | |
for (var i = 0; i < ByteArrayInput.Length; i++) | |
{ | |
var b = ByteArrayInput[i]; | |
var i2 = i * 2; | |
var (c1, c2) = ByteValues[b]; | |
result[i2] = c1; | |
result[i2 + 1] = c2; | |
} | |
return new string(result); | |
} | |
char[] MappingByte1 = new[] | |
{ | |
'0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'd', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', | |
}; | |
char[] MappingByte2 = new[] | |
{ | |
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', | |
}; | |
[Benchmark] | |
public string WithDoubleLookupArray() | |
{ | |
var result = new char[ByteArrayInput.Length * 2]; | |
for (var i = 0; i < ByteArrayInput.Length; i++) | |
{ | |
var b = ByteArrayInput[i]; | |
var i2 = i * 2; | |
result[i2] = MappingByte1[b]; | |
result[i2 + 1] = MappingByte2[b]; | |
} | |
return new string(result); | |
} | |
} | |
} |
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
<Project Sdk="Microsoft.NET.Sdk"> | |
<PropertyGroup> | |
<OutputType>Exe</OutputType> | |
<TargetFramework>netcoreapp3.0</TargetFramework> | |
</PropertyGroup> | |
<ItemGroup> | |
<PackageReference Include="BenchmarkDotNet" Version="0.12.0" /> | |
</ItemGroup> | |
</Project> |
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
C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0>HexBenchmark.exe | |
// Validating benchmarks: | |
// ***** BenchmarkRunner: Start ***** | |
// ***** Found 9 benchmark(s) in total ***** | |
// ***** Building 1 exe(s) in Parallel: Start ***** | |
// start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78 | |
// command took 1.48s and exited with 0 | |
// start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78 | |
// command took 3.09s and exited with 0 | |
// ***** Done, took 00:00:04 (4.79 sec) ***** | |
// Found 9 benchmarks: | |
// Algorithms.WithStringJoin: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithStringBuilder: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithStringBuilderForInt: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithBitConverter: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithCharArray: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithBitShifts: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithLookupTable: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithLookupArray: DefaultJob [ByteArrayInput=Array[8]] | |
// Algorithms.WithDoubleLookupArray: DefaultJob [ByteArrayInput=Array[8]] | |
// ************************** | |
// Benchmark: Algorithms.WithStringJoin: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithStringJoin(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 0 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 469500.00 ns, 469.5000 us/op | |
WorkloadJitting 1: 1 op, 2346000.00 ns, 2.3460 ms/op | |
OverheadJitting 2: 16 op, 814500.00 ns, 50.9062 us/op | |
WorkloadJitting 2: 16 op, 739900.00 ns, 46.2437 us/op | |
WorkloadPilot 1: 16 op, 19500.00 ns, 1.2188 us/op | |
WorkloadPilot 2: 32 op, 26100.00 ns, 815.6250 ns/op | |
WorkloadPilot 3: 64 op, 52900.00 ns, 826.5625 ns/op | |
WorkloadPilot 4: 128 op, 92200.00 ns, 720.3125 ns/op | |
WorkloadPilot 5: 256 op, 185000.00 ns, 722.6562 ns/op | |
WorkloadPilot 6: 512 op, 519400.00 ns, 1.0145 us/op | |
WorkloadPilot 7: 1024 op, 1377200.00 ns, 1.3449 us/op | |
WorkloadPilot 8: 2048 op, 1471200.00 ns, 718.3594 ns/op | |
WorkloadPilot 9: 4096 op, 2926500.00 ns, 714.4775 ns/op | |
WorkloadPilot 10: 8192 op, 5838500.00 ns, 712.7075 ns/op | |
WorkloadPilot 11: 16384 op, 11786200.00 ns, 719.3726 ns/op | |
WorkloadPilot 12: 32768 op, 22467400.00 ns, 685.6506 ns/op | |
WorkloadPilot 13: 65536 op, 44024400.00 ns, 671.7590 ns/op | |
WorkloadPilot 14: 131072 op, 74091000.00 ns, 565.2695 ns/op | |
WorkloadPilot 15: 262144 op, 140716900.00 ns, 536.7924 ns/op | |
WorkloadPilot 16: 524288 op, 273483800.00 ns, 521.6290 ns/op | |
WorkloadPilot 17: 1048576 op, 535924500.00 ns, 511.0974 ns/op | |
OverheadWarmup 1: 1048576 op, 4958600.00 ns, 4.7289 ns/op | |
OverheadWarmup 2: 1048576 op, 4883800.00 ns, 4.6576 ns/op | |
OverheadWarmup 3: 1048576 op, 13845900.00 ns, 13.2045 ns/op | |
OverheadWarmup 4: 1048576 op, 4834000.00 ns, 4.6101 ns/op | |
OverheadWarmup 5: 1048576 op, 6226700.00 ns, 5.9382 ns/op | |
OverheadWarmup 6: 1048576 op, 6268800.00 ns, 5.9784 ns/op | |
OverheadWarmup 7: 1048576 op, 4951300.00 ns, 4.7219 ns/op | |
OverheadActual 1: 1048576 op, 4968200.00 ns, 4.7380 ns/op | |
OverheadActual 2: 1048576 op, 4952200.00 ns, 4.7228 ns/op | |
OverheadActual 3: 1048576 op, 4983400.00 ns, 4.7525 ns/op | |
OverheadActual 4: 1048576 op, 4883500.00 ns, 4.6573 ns/op | |
OverheadActual 5: 1048576 op, 13996000.00 ns, 13.3476 ns/op | |
OverheadActual 6: 1048576 op, 14143000.00 ns, 13.4878 ns/op | |
OverheadActual 7: 1048576 op, 14065000.00 ns, 13.4134 ns/op | |
OverheadActual 8: 1048576 op, 4954800.00 ns, 4.7253 ns/op | |
OverheadActual 9: 1048576 op, 9224500.00 ns, 8.7972 ns/op | |
OverheadActual 10: 1048576 op, 4983400.00 ns, 4.7525 ns/op | |
OverheadActual 11: 1048576 op, 4918600.00 ns, 4.6907 ns/op | |
OverheadActual 12: 1048576 op, 4935500.00 ns, 4.7069 ns/op | |
OverheadActual 13: 1048576 op, 4971700.00 ns, 4.7414 ns/op | |
OverheadActual 14: 1048576 op, 5044500.00 ns, 4.8108 ns/op | |
OverheadActual 15: 1048576 op, 4887400.00 ns, 4.6610 ns/op | |
OverheadActual 16: 1048576 op, 4913900.00 ns, 4.6863 ns/op | |
OverheadActual 17: 1048576 op, 4850600.00 ns, 4.6259 ns/op | |
WorkloadWarmup 1: 1048576 op, 503143100.00 ns, 479.8347 ns/op | |
WorkloadWarmup 2: 1048576 op, 500572300.00 ns, 477.3829 ns/op | |
WorkloadWarmup 3: 1048576 op, 525931400.00 ns, 501.5673 ns/op | |
WorkloadWarmup 4: 1048576 op, 525501600.00 ns, 501.1574 ns/op | |
WorkloadWarmup 5: 1048576 op, 501969900.00 ns, 478.7158 ns/op | |
WorkloadWarmup 6: 1048576 op, 501657800.00 ns, 478.4182 ns/op | |
WorkloadWarmup 7: 1048576 op, 553418100.00 ns, 527.7806 ns/op | |
WorkloadWarmup 8: 1048576 op, 504313200.00 ns, 480.9505 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 1048576 op, 541961300.00 ns, 516.8546 ns/op | |
WorkloadActual 2: 1048576 op, 507798700.00 ns, 484.2746 ns/op | |
WorkloadActual 3: 1048576 op, 550116700.00 ns, 524.6322 ns/op | |
WorkloadActual 4: 1048576 op, 514304400.00 ns, 490.4789 ns/op | |
WorkloadActual 5: 1048576 op, 551311000.00 ns, 525.7711 ns/op | |
WorkloadActual 6: 1048576 op, 545558700.00 ns, 520.2853 ns/op | |
WorkloadActual 7: 1048576 op, 557271700.00 ns, 531.4557 ns/op | |
WorkloadActual 8: 1048576 op, 534583900.00 ns, 509.8189 ns/op | |
WorkloadActual 9: 1048576 op, 545192100.00 ns, 519.9357 ns/op | |
WorkloadActual 10: 1048576 op, 540968700.00 ns, 515.9080 ns/op | |
WorkloadActual 11: 1048576 op, 555634400.00 ns, 529.8943 ns/op | |
WorkloadActual 12: 1048576 op, 508576200.00 ns, 485.0161 ns/op | |
WorkloadActual 13: 1048576 op, 524322700.00 ns, 500.0331 ns/op | |
WorkloadActual 14: 1048576 op, 526144700.00 ns, 501.7707 ns/op | |
WorkloadActual 15: 1048576 op, 542600400.00 ns, 517.4641 ns/op | |
WorkloadActual 16: 1048576 op, 523787300.00 ns, 499.5225 ns/op | |
WorkloadActual 17: 1048576 op, 501867300.00 ns, 478.6180 ns/op | |
WorkloadActual 18: 1048576 op, 555001000.00 ns, 529.2902 ns/op | |
WorkloadActual 19: 1048576 op, 540467500.00 ns, 515.4300 ns/op | |
WorkloadActual 20: 1048576 op, 544754100.00 ns, 519.5180 ns/op | |
WorkloadActual 21: 1048576 op, 501656000.00 ns, 478.4164 ns/op | |
WorkloadActual 22: 1048576 op, 542357500.00 ns, 517.2324 ns/op | |
WorkloadActual 23: 1048576 op, 540243400.00 ns, 515.2163 ns/op | |
WorkloadActual 24: 1048576 op, 502125100.00 ns, 478.8638 ns/op | |
WorkloadActual 25: 1048576 op, 542618000.00 ns, 517.4809 ns/op | |
WorkloadActual 26: 1048576 op, 501957500.00 ns, 478.7040 ns/op | |
WorkloadActual 27: 1048576 op, 500781200.00 ns, 477.5822 ns/op | |
WorkloadActual 28: 1048576 op, 500957300.00 ns, 477.7501 ns/op | |
WorkloadActual 29: 1048576 op, 501515300.00 ns, 478.2823 ns/op | |
WorkloadActual 30: 1048576 op, 554857400.00 ns, 529.1533 ns/op | |
WorkloadActual 31: 1048576 op, 528060200.00 ns, 503.5975 ns/op | |
WorkloadActual 32: 1048576 op, 506222200.00 ns, 482.7711 ns/op | |
WorkloadActual 33: 1048576 op, 506947900.00 ns, 483.4632 ns/op | |
WorkloadActual 34: 1048576 op, 587931100.00 ns, 560.6948 ns/op | |
WorkloadActual 35: 1048576 op, 550928100.00 ns, 525.4060 ns/op | |
WorkloadActual 36: 1048576 op, 565569100.00 ns, 539.3687 ns/op | |
WorkloadActual 37: 1048576 op, 559144100.00 ns, 533.2414 ns/op | |
WorkloadActual 38: 1048576 op, 539977000.00 ns, 514.9622 ns/op | |
WorkloadActual 39: 1048576 op, 558886400.00 ns, 532.9956 ns/op | |
WorkloadActual 40: 1048576 op, 528706700.00 ns, 504.2140 ns/op | |
WorkloadActual 41: 1048576 op, 544035500.00 ns, 518.8327 ns/op | |
WorkloadActual 42: 1048576 op, 549726900.00 ns, 524.2604 ns/op | |
WorkloadActual 43: 1048576 op, 560362800.00 ns, 534.4036 ns/op | |
WorkloadActual 44: 1048576 op, 543463300.00 ns, 518.2870 ns/op | |
WorkloadActual 45: 1048576 op, 567146200.00 ns, 540.8728 ns/op | |
WorkloadActual 46: 1048576 op, 548582000.00 ns, 523.1686 ns/op | |
WorkloadActual 47: 1048576 op, 574526300.00 ns, 547.9110 ns/op | |
WorkloadActual 48: 1048576 op, 561675900.00 ns, 535.6559 ns/op | |
WorkloadActual 49: 1048576 op, 559219700.00 ns, 533.3135 ns/op | |
WorkloadActual 50: 1048576 op, 582092800.00 ns, 555.1270 ns/op | |
WorkloadActual 51: 1048576 op, 551667900.00 ns, 526.1115 ns/op | |
WorkloadActual 52: 1048576 op, 506682300.00 ns, 483.2099 ns/op | |
WorkloadActual 53: 1048576 op, 552674600.00 ns, 527.0716 ns/op | |
WorkloadActual 54: 1048576 op, 513434000.00 ns, 489.6488 ns/op | |
WorkloadActual 55: 1048576 op, 504096000.00 ns, 480.7434 ns/op | |
WorkloadActual 56: 1048576 op, 527358900.00 ns, 502.9286 ns/op | |
WorkloadActual 57: 1048576 op, 518325500.00 ns, 494.3137 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 1048576 op, 536993100.00 ns, 512.1165 ns/op | |
WorkloadResult 2: 1048576 op, 502830500.00 ns, 479.5365 ns/op | |
WorkloadResult 3: 1048576 op, 545148500.00 ns, 519.8941 ns/op | |
WorkloadResult 4: 1048576 op, 509336200.00 ns, 485.7409 ns/op | |
WorkloadResult 5: 1048576 op, 546342800.00 ns, 521.0331 ns/op | |
WorkloadResult 6: 1048576 op, 540590500.00 ns, 515.5473 ns/op | |
WorkloadResult 7: 1048576 op, 552303500.00 ns, 526.7177 ns/op | |
WorkloadResult 8: 1048576 op, 529615700.00 ns, 505.0809 ns/op | |
WorkloadResult 9: 1048576 op, 540223900.00 ns, 515.1977 ns/op | |
WorkloadResult 10: 1048576 op, 536000500.00 ns, 511.1699 ns/op | |
WorkloadResult 11: 1048576 op, 550666200.00 ns, 525.1562 ns/op | |
WorkloadResult 12: 1048576 op, 503608000.00 ns, 480.2780 ns/op | |
WorkloadResult 13: 1048576 op, 519354500.00 ns, 495.2950 ns/op | |
WorkloadResult 14: 1048576 op, 521176500.00 ns, 497.0326 ns/op | |
WorkloadResult 15: 1048576 op, 537632200.00 ns, 512.7260 ns/op | |
WorkloadResult 16: 1048576 op, 518819100.00 ns, 494.7845 ns/op | |
WorkloadResult 17: 1048576 op, 496899100.00 ns, 473.8799 ns/op | |
WorkloadResult 18: 1048576 op, 550032800.00 ns, 524.5522 ns/op | |
WorkloadResult 19: 1048576 op, 535499300.00 ns, 510.6919 ns/op | |
WorkloadResult 20: 1048576 op, 539785900.00 ns, 514.7799 ns/op | |
WorkloadResult 21: 1048576 op, 496687800.00 ns, 473.6784 ns/op | |
WorkloadResult 22: 1048576 op, 537389300.00 ns, 512.4944 ns/op | |
WorkloadResult 23: 1048576 op, 535275200.00 ns, 510.4782 ns/op | |
WorkloadResult 24: 1048576 op, 497156900.00 ns, 474.1258 ns/op | |
WorkloadResult 25: 1048576 op, 537649800.00 ns, 512.7428 ns/op | |
WorkloadResult 26: 1048576 op, 496989300.00 ns, 473.9659 ns/op | |
WorkloadResult 27: 1048576 op, 495813000.00 ns, 472.8441 ns/op | |
WorkloadResult 28: 1048576 op, 495989100.00 ns, 473.0121 ns/op | |
WorkloadResult 29: 1048576 op, 496547100.00 ns, 473.5442 ns/op | |
WorkloadResult 30: 1048576 op, 549889200.00 ns, 524.4152 ns/op | |
WorkloadResult 31: 1048576 op, 523092000.00 ns, 498.8594 ns/op | |
WorkloadResult 32: 1048576 op, 501254000.00 ns, 478.0331 ns/op | |
WorkloadResult 33: 1048576 op, 501979700.00 ns, 478.7251 ns/op | |
WorkloadResult 34: 1048576 op, 582962900.00 ns, 555.9567 ns/op | |
WorkloadResult 35: 1048576 op, 545959900.00 ns, 520.6679 ns/op | |
WorkloadResult 36: 1048576 op, 560600900.00 ns, 534.6307 ns/op | |
WorkloadResult 37: 1048576 op, 554175900.00 ns, 528.5033 ns/op | |
WorkloadResult 38: 1048576 op, 535008800.00 ns, 510.2242 ns/op | |
WorkloadResult 39: 1048576 op, 553918200.00 ns, 528.2576 ns/op | |
WorkloadResult 40: 1048576 op, 523738500.00 ns, 499.4760 ns/op | |
WorkloadResult 41: 1048576 op, 539067300.00 ns, 514.0946 ns/op | |
WorkloadResult 42: 1048576 op, 544758700.00 ns, 519.5224 ns/op | |
WorkloadResult 43: 1048576 op, 555394600.00 ns, 529.6656 ns/op | |
WorkloadResult 44: 1048576 op, 538495100.00 ns, 513.5489 ns/op | |
WorkloadResult 45: 1048576 op, 562178000.00 ns, 536.1347 ns/op | |
WorkloadResult 46: 1048576 op, 543613800.00 ns, 518.4305 ns/op | |
WorkloadResult 47: 1048576 op, 569558100.00 ns, 543.1729 ns/op | |
WorkloadResult 48: 1048576 op, 556707700.00 ns, 530.9178 ns/op | |
WorkloadResult 49: 1048576 op, 554251500.00 ns, 528.5754 ns/op | |
WorkloadResult 50: 1048576 op, 577124600.00 ns, 550.3889 ns/op | |
WorkloadResult 51: 1048576 op, 546699700.00 ns, 521.3735 ns/op | |
WorkloadResult 52: 1048576 op, 501714100.00 ns, 478.4719 ns/op | |
WorkloadResult 53: 1048576 op, 547706400.00 ns, 522.3335 ns/op | |
WorkloadResult 54: 1048576 op, 508465800.00 ns, 484.9108 ns/op | |
WorkloadResult 55: 1048576 op, 499127800.00 ns, 476.0054 ns/op | |
WorkloadResult 56: 1048576 op, 522390700.00 ns, 498.1906 ns/op | |
WorkloadResult 57: 1048576 op, 513357300.00 ns, 489.5757 ns/op | |
// AfterAll | |
// Benchmark Process 168756 has exited with code 0 | |
Mean = 507.2133 ns, StdErr = 2.9232 ns (0.58%); N = 57, StdDev = 22.0700 ns | |
Min = 472.8441 ns, Q1 = 485.3258 ns, Median = 512.4944 ns, Q3 = 523.3744 ns, Max = 555.9567 ns | |
IQR = 38.0486 ns, LowerFence = 428.2530 ns, UpperFence = 580.4472 ns | |
ConfidenceInterval = [497.0612 ns; 517.3655 ns] (CI 99.9%), Margin = 10.1522 ns (2.00% of Mean) | |
Skewness = -0.1, Kurtosis = 2.04, MValue = 2.86 | |
// ************************** | |
// Benchmark: Algorithms.WithStringBuilder: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithStringBuilder(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 1 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 452000.00 ns, 452.0000 us/op | |
WorkloadJitting 1: 1 op, 780000.00 ns, 780.0000 us/op | |
OverheadJitting 2: 16 op, 782400.00 ns, 48.9000 us/op | |
WorkloadJitting 2: 16 op, 2152400.00 ns, 134.5250 us/op | |
WorkloadPilot 1: 16 op, 8100.00 ns, 506.2500 ns/op | |
WorkloadPilot 2: 32 op, 14500.00 ns, 453.1250 ns/op | |
WorkloadPilot 3: 64 op, 30500.00 ns, 476.5625 ns/op | |
WorkloadPilot 4: 128 op, 50500.00 ns, 394.5312 ns/op | |
WorkloadPilot 5: 256 op, 122800.00 ns, 479.6875 ns/op | |
WorkloadPilot 6: 512 op, 199400.00 ns, 389.4531 ns/op | |
WorkloadPilot 7: 1024 op, 475400.00 ns, 464.2578 ns/op | |
WorkloadPilot 8: 2048 op, 954300.00 ns, 465.9668 ns/op | |
WorkloadPilot 9: 4096 op, 1884700.00 ns, 460.1318 ns/op | |
WorkloadPilot 10: 8192 op, 3533200.00 ns, 431.2988 ns/op | |
WorkloadPilot 11: 16384 op, 7186400.00 ns, 438.6230 ns/op | |
WorkloadPilot 12: 32768 op, 31680000.00 ns, 966.7969 ns/op | |
WorkloadPilot 13: 65536 op, 43227100.00 ns, 659.5932 ns/op | |
WorkloadPilot 14: 131072 op, 54578700.00 ns, 416.4024 ns/op | |
WorkloadPilot 15: 262144 op, 91150400.00 ns, 347.7112 ns/op | |
WorkloadPilot 16: 524288 op, 175760200.00 ns, 335.2360 ns/op | |
WorkloadPilot 17: 1048576 op, 332047500.00 ns, 316.6652 ns/op | |
WorkloadPilot 18: 2097152 op, 661394400.00 ns, 315.3774 ns/op | |
OverheadWarmup 1: 2097152 op, 8904400.00 ns, 4.2459 ns/op | |
OverheadWarmup 2: 2097152 op, 8964000.00 ns, 4.2744 ns/op | |
OverheadWarmup 3: 2097152 op, 8899900.00 ns, 4.2438 ns/op | |
OverheadWarmup 4: 2097152 op, 26050600.00 ns, 12.4219 ns/op | |
OverheadWarmup 5: 2097152 op, 15629100.00 ns, 7.4525 ns/op | |
OverheadActual 1: 2097152 op, 12930900.00 ns, 6.1659 ns/op | |
OverheadActual 2: 2097152 op, 9774500.00 ns, 4.6608 ns/op | |
OverheadActual 3: 2097152 op, 8768800.00 ns, 4.1813 ns/op | |
OverheadActual 4: 2097152 op, 8817200.00 ns, 4.2044 ns/op | |
OverheadActual 5: 2097152 op, 8964000.00 ns, 4.2744 ns/op | |
OverheadActual 6: 2097152 op, 9394400.00 ns, 4.4796 ns/op | |
OverheadActual 7: 2097152 op, 8990600.00 ns, 4.2871 ns/op | |
OverheadActual 8: 2097152 op, 9116600.00 ns, 4.3471 ns/op | |
OverheadActual 9: 2097152 op, 9486800.00 ns, 4.5237 ns/op | |
OverheadActual 10: 2097152 op, 9041100.00 ns, 4.3111 ns/op | |
OverheadActual 11: 2097152 op, 9060000.00 ns, 4.3201 ns/op | |
OverheadActual 12: 2097152 op, 8941300.00 ns, 4.2635 ns/op | |
OverheadActual 13: 2097152 op, 25723700.00 ns, 12.2660 ns/op | |
OverheadActual 14: 2097152 op, 8919500.00 ns, 4.2531 ns/op | |
OverheadActual 15: 2097152 op, 25699700.00 ns, 12.2546 ns/op | |
WorkloadWarmup 1: 2097152 op, 666374800.00 ns, 317.7523 ns/op | |
WorkloadWarmup 2: 2097152 op, 676281300.00 ns, 322.4761 ns/op | |
WorkloadWarmup 3: 2097152 op, 773878500.00 ns, 369.0140 ns/op | |
WorkloadWarmup 4: 2097152 op, 701404100.00 ns, 334.4555 ns/op | |
WorkloadWarmup 5: 2097152 op, 729186200.00 ns, 347.7031 ns/op | |
WorkloadWarmup 6: 2097152 op, 707654600.00 ns, 337.4360 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 2097152 op, 722605600.00 ns, 344.5652 ns/op | |
WorkloadActual 2: 2097152 op, 668905800.00 ns, 318.9591 ns/op | |
WorkloadActual 3: 2097152 op, 721160300.00 ns, 343.8760 ns/op | |
WorkloadActual 4: 2097152 op, 686517700.00 ns, 327.3571 ns/op | |
WorkloadActual 5: 2097152 op, 690617700.00 ns, 329.3122 ns/op | |
WorkloadActual 6: 2097152 op, 661349000.00 ns, 315.3558 ns/op | |
WorkloadActual 7: 2097152 op, 715730200.00 ns, 341.2868 ns/op | |
WorkloadActual 8: 2097152 op, 728680400.00 ns, 347.4619 ns/op | |
WorkloadActual 9: 2097152 op, 677606900.00 ns, 323.1081 ns/op | |
WorkloadActual 10: 2097152 op, 667991200.00 ns, 318.5230 ns/op | |
WorkloadActual 11: 2097152 op, 720153600.00 ns, 343.3960 ns/op | |
WorkloadActual 12: 2097152 op, 713114500.00 ns, 340.0395 ns/op | |
WorkloadActual 13: 2097152 op, 669977200.00 ns, 319.4700 ns/op | |
WorkloadActual 14: 2097152 op, 688537300.00 ns, 328.3202 ns/op | |
WorkloadActual 15: 2097152 op, 744839900.00 ns, 355.1673 ns/op | |
WorkloadActual 16: 2097152 op, 752431500.00 ns, 358.7873 ns/op | |
WorkloadActual 17: 2097152 op, 785039200.00 ns, 374.3359 ns/op | |
WorkloadActual 18: 2097152 op, 809367400.00 ns, 385.9365 ns/op | |
WorkloadActual 19: 2097152 op, 735739600.00 ns, 350.8280 ns/op | |
WorkloadActual 20: 2097152 op, 785351600.00 ns, 374.4848 ns/op | |
WorkloadActual 21: 2097152 op, 758261900.00 ns, 361.5674 ns/op | |
WorkloadActual 22: 2097152 op, 712476700.00 ns, 339.7354 ns/op | |
WorkloadActual 23: 2097152 op, 739638900.00 ns, 352.6873 ns/op | |
WorkloadActual 24: 2097152 op, 726776300.00 ns, 346.5539 ns/op | |
WorkloadActual 25: 2097152 op, 720347200.00 ns, 343.4883 ns/op | |
WorkloadActual 26: 2097152 op, 724396600.00 ns, 345.4192 ns/op | |
WorkloadActual 27: 2097152 op, 702838400.00 ns, 335.1395 ns/op | |
WorkloadActual 28: 2097152 op, 749102100.00 ns, 357.1997 ns/op | |
WorkloadActual 29: 2097152 op, 714026600.00 ns, 340.4744 ns/op | |
WorkloadActual 30: 2097152 op, 741761400.00 ns, 353.6994 ns/op | |
WorkloadActual 31: 2097152 op, 729175800.00 ns, 347.6981 ns/op | |
WorkloadActual 32: 2097152 op, 665794200.00 ns, 317.4754 ns/op | |
WorkloadActual 33: 2097152 op, 699087000.00 ns, 333.3507 ns/op | |
WorkloadActual 34: 2097152 op, 718321000.00 ns, 342.5221 ns/op | |
WorkloadActual 35: 2097152 op, 716984600.00 ns, 341.8849 ns/op | |
WorkloadActual 36: 2097152 op, 719770700.00 ns, 343.2134 ns/op | |
WorkloadActual 37: 2097152 op, 724923000.00 ns, 345.6702 ns/op | |
WorkloadActual 38: 2097152 op, 738576800.00 ns, 352.1809 ns/op | |
WorkloadActual 39: 2097152 op, 710870500.00 ns, 338.9695 ns/op | |
WorkloadActual 40: 2097152 op, 744762100.00 ns, 355.1302 ns/op | |
WorkloadActual 41: 2097152 op, 729489500.00 ns, 347.8477 ns/op | |
WorkloadActual 42: 2097152 op, 716777400.00 ns, 341.7861 ns/op | |
WorkloadActual 43: 2097152 op, 721714900.00 ns, 344.1405 ns/op | |
WorkloadActual 44: 2097152 op, 665373100.00 ns, 317.2746 ns/op | |
WorkloadActual 45: 2097152 op, 670761200.00 ns, 319.8439 ns/op | |
WorkloadActual 46: 2097152 op, 718473800.00 ns, 342.5950 ns/op | |
WorkloadActual 47: 2097152 op, 719962800.00 ns, 343.3050 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 2097152 op, 713545600.00 ns, 340.2451 ns/op | |
WorkloadResult 2: 2097152 op, 659845800.00 ns, 314.6390 ns/op | |
WorkloadResult 3: 2097152 op, 712100300.00 ns, 339.5559 ns/op | |
WorkloadResult 4: 2097152 op, 677457700.00 ns, 323.0370 ns/op | |
WorkloadResult 5: 2097152 op, 681557700.00 ns, 324.9920 ns/op | |
WorkloadResult 6: 2097152 op, 652289000.00 ns, 311.0356 ns/op | |
WorkloadResult 7: 2097152 op, 706670200.00 ns, 336.9666 ns/op | |
WorkloadResult 8: 2097152 op, 719620400.00 ns, 343.1417 ns/op | |
WorkloadResult 9: 2097152 op, 668546900.00 ns, 318.7880 ns/op | |
WorkloadResult 10: 2097152 op, 658931200.00 ns, 314.2029 ns/op | |
WorkloadResult 11: 2097152 op, 711093600.00 ns, 339.0759 ns/op | |
WorkloadResult 12: 2097152 op, 704054500.00 ns, 335.7193 ns/op | |
WorkloadResult 13: 2097152 op, 660917200.00 ns, 315.1499 ns/op | |
WorkloadResult 14: 2097152 op, 679477300.00 ns, 324.0000 ns/op | |
WorkloadResult 15: 2097152 op, 735779900.00 ns, 350.8472 ns/op | |
WorkloadResult 16: 2097152 op, 743371500.00 ns, 354.4672 ns/op | |
WorkloadResult 17: 2097152 op, 775979200.00 ns, 370.0157 ns/op | |
WorkloadResult 18: 2097152 op, 726679600.00 ns, 346.5078 ns/op | |
WorkloadResult 19: 2097152 op, 776291600.00 ns, 370.1647 ns/op | |
WorkloadResult 20: 2097152 op, 749201900.00 ns, 357.2473 ns/op | |
WorkloadResult 21: 2097152 op, 703416700.00 ns, 335.4152 ns/op | |
WorkloadResult 22: 2097152 op, 730578900.00 ns, 348.3672 ns/op | |
WorkloadResult 23: 2097152 op, 717716300.00 ns, 342.2338 ns/op | |
WorkloadResult 24: 2097152 op, 711287200.00 ns, 339.1682 ns/op | |
WorkloadResult 25: 2097152 op, 715336600.00 ns, 341.0991 ns/op | |
WorkloadResult 26: 2097152 op, 693778400.00 ns, 330.8193 ns/op | |
WorkloadResult 27: 2097152 op, 740042100.00 ns, 352.8796 ns/op | |
WorkloadResult 28: 2097152 op, 704966600.00 ns, 336.1543 ns/op | |
WorkloadResult 29: 2097152 op, 732701400.00 ns, 349.3793 ns/op | |
WorkloadResult 30: 2097152 op, 720115800.00 ns, 343.3780 ns/op | |
WorkloadResult 31: 2097152 op, 656734200.00 ns, 313.1553 ns/op | |
WorkloadResult 32: 2097152 op, 690027000.00 ns, 329.0305 ns/op | |
WorkloadResult 33: 2097152 op, 709261000.00 ns, 338.2020 ns/op | |
WorkloadResult 34: 2097152 op, 707924600.00 ns, 337.5648 ns/op | |
WorkloadResult 35: 2097152 op, 710710700.00 ns, 338.8933 ns/op | |
WorkloadResult 36: 2097152 op, 715863000.00 ns, 341.3501 ns/op | |
WorkloadResult 37: 2097152 op, 729516800.00 ns, 347.8607 ns/op | |
WorkloadResult 38: 2097152 op, 701810500.00 ns, 334.6493 ns/op | |
WorkloadResult 39: 2097152 op, 735702100.00 ns, 350.8101 ns/op | |
WorkloadResult 40: 2097152 op, 720429500.00 ns, 343.5276 ns/op | |
WorkloadResult 41: 2097152 op, 707717400.00 ns, 337.4660 ns/op | |
WorkloadResult 42: 2097152 op, 712654900.00 ns, 339.8203 ns/op | |
WorkloadResult 43: 2097152 op, 656313100.00 ns, 312.9545 ns/op | |
WorkloadResult 44: 2097152 op, 661701200.00 ns, 315.5237 ns/op | |
WorkloadResult 45: 2097152 op, 709413800.00 ns, 338.2749 ns/op | |
WorkloadResult 46: 2097152 op, 710902800.00 ns, 338.9849 ns/op | |
// AfterAll | |
// Benchmark Process 158024 has exited with code 0 | |
Mean = 337.1035 ns, StdErr = 2.0840 ns (0.62%); N = 46, StdDev = 14.1346 ns | |
Min = 311.0356 ns, Q1 = 329.0305 ns, Median = 338.9391 ns, Q3 = 343.5276 ns, Max = 370.1647 ns | |
IQR = 14.4970 ns, LowerFence = 307.2850 ns, UpperFence = 365.2731 ns | |
ConfidenceInterval = [329.7672 ns; 344.4398 ns] (CI 99.9%), Margin = 7.3363 ns (2.18% of Mean) | |
Skewness = -0.02, Kurtosis = 2.8, MValue = 2.7 | |
// ************************** | |
// Benchmark: Algorithms.WithStringBuilderForInt: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithStringBuilderForInt(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 2 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 456900.00 ns, 456.9000 us/op | |
WorkloadJitting 1: 1 op, 778100.00 ns, 778.1000 us/op | |
OverheadJitting 2: 16 op, 731600.00 ns, 45.7250 us/op | |
WorkloadJitting 2: 16 op, 2112200.00 ns, 132.0125 us/op | |
WorkloadPilot 1: 16 op, 9400.00 ns, 587.5000 ns/op | |
WorkloadPilot 2: 32 op, 36700.00 ns, 1.1469 us/op | |
WorkloadPilot 3: 64 op, 75000.00 ns, 1.1719 us/op | |
WorkloadPilot 4: 128 op, 136900.00 ns, 1.0695 us/op | |
WorkloadPilot 5: 256 op, 130600.00 ns, 510.1562 ns/op | |
WorkloadPilot 6: 512 op, 197100.00 ns, 384.9609 ns/op | |
WorkloadPilot 7: 1024 op, 642100.00 ns, 627.0508 ns/op | |
WorkloadPilot 8: 2048 op, 1289800.00 ns, 629.7852 ns/op | |
WorkloadPilot 9: 4096 op, 3254400.00 ns, 794.5312 ns/op | |
WorkloadPilot 10: 8192 op, 3627100.00 ns, 442.7612 ns/op | |
WorkloadPilot 11: 16384 op, 7064200.00 ns, 431.1646 ns/op | |
WorkloadPilot 12: 32768 op, 15991200.00 ns, 488.0127 ns/op | |
WorkloadPilot 13: 65536 op, 24753500.00 ns, 377.7084 ns/op | |
WorkloadPilot 14: 131072 op, 47584600.00 ns, 363.0417 ns/op | |
WorkloadPilot 15: 262144 op, 92177200.00 ns, 351.6281 ns/op | |
WorkloadPilot 16: 524288 op, 170356400.00 ns, 324.9290 ns/op | |
WorkloadPilot 17: 1048576 op, 361308700.00 ns, 344.5708 ns/op | |
WorkloadPilot 18: 2097152 op, 722169300.00 ns, 344.3572 ns/op | |
OverheadWarmup 1: 2097152 op, 9038100.00 ns, 4.3097 ns/op | |
OverheadWarmup 2: 2097152 op, 9039600.00 ns, 4.3104 ns/op | |
OverheadWarmup 3: 2097152 op, 8931700.00 ns, 4.2590 ns/op | |
OverheadWarmup 4: 2097152 op, 9032200.00 ns, 4.3069 ns/op | |
OverheadWarmup 5: 2097152 op, 23754300.00 ns, 11.3269 ns/op | |
OverheadWarmup 6: 2097152 op, 8910300.00 ns, 4.2488 ns/op | |
OverheadActual 1: 2097152 op, 8799000.00 ns, 4.1957 ns/op | |
OverheadActual 2: 2097152 op, 8723900.00 ns, 4.1599 ns/op | |
OverheadActual 3: 2097152 op, 24147500.00 ns, 11.5144 ns/op | |
OverheadActual 4: 2097152 op, 8735700.00 ns, 4.1655 ns/op | |
OverheadActual 5: 2097152 op, 8848700.00 ns, 4.2194 ns/op | |
OverheadActual 6: 2097152 op, 9029600.00 ns, 4.3056 ns/op | |
OverheadActual 7: 2097152 op, 8871900.00 ns, 4.2305 ns/op | |
OverheadActual 8: 2097152 op, 8896000.00 ns, 4.2419 ns/op | |
OverheadActual 9: 2097152 op, 25784200.00 ns, 12.2949 ns/op | |
OverheadActual 10: 2097152 op, 8955900.00 ns, 4.2705 ns/op | |
OverheadActual 11: 2097152 op, 8939800.00 ns, 4.2628 ns/op | |
OverheadActual 12: 2097152 op, 12806200.00 ns, 6.1065 ns/op | |
OverheadActual 13: 2097152 op, 12886800.00 ns, 6.1449 ns/op | |
OverheadActual 14: 2097152 op, 23317200.00 ns, 11.1185 ns/op | |
OverheadActual 15: 2097152 op, 12780900.00 ns, 6.0944 ns/op | |
OverheadActual 16: 2097152 op, 18608500.00 ns, 8.8732 ns/op | |
OverheadActual 17: 2097152 op, 8959300.00 ns, 4.2721 ns/op | |
OverheadActual 18: 2097152 op, 8841100.00 ns, 4.2158 ns/op | |
OverheadActual 19: 2097152 op, 23551600.00 ns, 11.2303 ns/op | |
OverheadActual 20: 2097152 op, 8956200.00 ns, 4.2706 ns/op | |
WorkloadWarmup 1: 2097152 op, 684670000.00 ns, 326.4761 ns/op | |
WorkloadWarmup 2: 2097152 op, 719340900.00 ns, 343.0085 ns/op | |
WorkloadWarmup 3: 2097152 op, 726203700.00 ns, 346.2809 ns/op | |
WorkloadWarmup 4: 2097152 op, 723409900.00 ns, 344.9487 ns/op | |
WorkloadWarmup 5: 2097152 op, 714846100.00 ns, 340.8652 ns/op | |
WorkloadWarmup 6: 2097152 op, 726227500.00 ns, 346.2923 ns/op | |
WorkloadWarmup 7: 2097152 op, 714127700.00 ns, 340.5226 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 2097152 op, 736118700.00 ns, 351.0087 ns/op | |
WorkloadActual 2: 2097152 op, 722994900.00 ns, 344.7508 ns/op | |
WorkloadActual 3: 2097152 op, 704385500.00 ns, 335.8772 ns/op | |
WorkloadActual 4: 2097152 op, 715652800.00 ns, 341.2498 ns/op | |
WorkloadActual 5: 2097152 op, 712240800.00 ns, 339.6229 ns/op | |
WorkloadActual 6: 2097152 op, 703402400.00 ns, 335.4084 ns/op | |
WorkloadActual 7: 2097152 op, 662048200.00 ns, 315.6892 ns/op | |
WorkloadActual 8: 2097152 op, 665557300.00 ns, 317.3625 ns/op | |
WorkloadActual 9: 2097152 op, 664179800.00 ns, 316.7056 ns/op | |
WorkloadActual 10: 2097152 op, 719896900.00 ns, 343.2736 ns/op | |
WorkloadActual 11: 2097152 op, 664635300.00 ns, 316.9228 ns/op | |
WorkloadActual 12: 2097152 op, 719090000.00 ns, 342.8888 ns/op | |
WorkloadActual 13: 2097152 op, 659940900.00 ns, 314.6843 ns/op | |
WorkloadActual 14: 2097152 op, 713439700.00 ns, 340.1946 ns/op | |
WorkloadActual 15: 2097152 op, 718772500.00 ns, 342.7374 ns/op | |
WorkloadActual 16: 2097152 op, 670275000.00 ns, 319.6120 ns/op | |
WorkloadActual 17: 2097152 op, 703674800.00 ns, 335.5383 ns/op | |
WorkloadActual 18: 2097152 op, 667892600.00 ns, 318.4760 ns/op | |
WorkloadActual 19: 2097152 op, 677284400.00 ns, 322.9544 ns/op | |
WorkloadActual 20: 2097152 op, 721754300.00 ns, 344.1593 ns/op | |
WorkloadActual 21: 2097152 op, 719699300.00 ns, 343.1794 ns/op | |
WorkloadActual 22: 2097152 op, 682603800.00 ns, 325.4909 ns/op | |
WorkloadActual 23: 2097152 op, 699938400.00 ns, 333.7566 ns/op | |
WorkloadActual 24: 2097152 op, 670049900.00 ns, 319.5047 ns/op | |
WorkloadActual 25: 2097152 op, 678199300.00 ns, 323.3906 ns/op | |
WorkloadActual 26: 2097152 op, 671392500.00 ns, 320.1449 ns/op | |
WorkloadActual 27: 2097152 op, 670397000.00 ns, 319.6702 ns/op | |
WorkloadActual 28: 2097152 op, 670872800.00 ns, 319.8971 ns/op | |
WorkloadActual 29: 2097152 op, 665507900.00 ns, 317.3389 ns/op | |
WorkloadActual 30: 2097152 op, 665067900.00 ns, 317.1291 ns/op | |
WorkloadActual 31: 2097152 op, 665411500.00 ns, 317.2929 ns/op | |
WorkloadActual 32: 2097152 op, 664853100.00 ns, 317.0267 ns/op | |
WorkloadActual 33: 2097152 op, 667009600.00 ns, 318.0550 ns/op | |
WorkloadActual 34: 2097152 op, 664915800.00 ns, 317.0566 ns/op | |
WorkloadActual 35: 2097152 op, 716478900.00 ns, 341.6438 ns/op | |
WorkloadActual 36: 2097152 op, 663383500.00 ns, 316.3259 ns/op | |
WorkloadActual 37: 2097152 op, 713842800.00 ns, 340.3868 ns/op | |
WorkloadActual 38: 2097152 op, 715754700.00 ns, 341.2984 ns/op | |
WorkloadActual 39: 2097152 op, 663174900.00 ns, 316.2264 ns/op | |
WorkloadActual 40: 2097152 op, 725855000.00 ns, 346.1146 ns/op | |
WorkloadActual 41: 2097152 op, 731417100.00 ns, 348.7669 ns/op | |
WorkloadActual 42: 2097152 op, 736415700.00 ns, 351.1504 ns/op | |
WorkloadActual 43: 2097152 op, 702274100.00 ns, 334.8704 ns/op | |
WorkloadActual 44: 2097152 op, 670887700.00 ns, 319.9042 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 2097152 op, 727160950.00 ns, 346.7374 ns/op | |
WorkloadResult 2: 2097152 op, 714037150.00 ns, 340.4794 ns/op | |
WorkloadResult 3: 2097152 op, 695427750.00 ns, 331.6058 ns/op | |
WorkloadResult 4: 2097152 op, 706695050.00 ns, 336.9785 ns/op | |
WorkloadResult 5: 2097152 op, 703283050.00 ns, 335.3515 ns/op | |
WorkloadResult 6: 2097152 op, 694444650.00 ns, 331.1370 ns/op | |
WorkloadResult 7: 2097152 op, 653090450.00 ns, 311.4178 ns/op | |
WorkloadResult 8: 2097152 op, 656599550.00 ns, 313.0911 ns/op | |
WorkloadResult 9: 2097152 op, 655222050.00 ns, 312.4342 ns/op | |
WorkloadResult 10: 2097152 op, 710939150.00 ns, 339.0022 ns/op | |
WorkloadResult 11: 2097152 op, 655677550.00 ns, 312.6514 ns/op | |
WorkloadResult 12: 2097152 op, 710132250.00 ns, 338.6174 ns/op | |
WorkloadResult 13: 2097152 op, 650983150.00 ns, 310.4130 ns/op | |
WorkloadResult 14: 2097152 op, 704481950.00 ns, 335.9232 ns/op | |
WorkloadResult 15: 2097152 op, 709814750.00 ns, 338.4660 ns/op | |
WorkloadResult 16: 2097152 op, 661317250.00 ns, 315.3406 ns/op | |
WorkloadResult 17: 2097152 op, 694717050.00 ns, 331.2669 ns/op | |
WorkloadResult 18: 2097152 op, 658934850.00 ns, 314.2046 ns/op | |
WorkloadResult 19: 2097152 op, 668326650.00 ns, 318.6830 ns/op | |
WorkloadResult 20: 2097152 op, 712796550.00 ns, 339.8879 ns/op | |
WorkloadResult 21: 2097152 op, 710741550.00 ns, 338.9080 ns/op | |
WorkloadResult 22: 2097152 op, 673646050.00 ns, 321.2195 ns/op | |
WorkloadResult 23: 2097152 op, 690980650.00 ns, 329.4852 ns/op | |
WorkloadResult 24: 2097152 op, 661092150.00 ns, 315.2333 ns/op | |
WorkloadResult 25: 2097152 op, 669241550.00 ns, 319.1192 ns/op | |
WorkloadResult 26: 2097152 op, 662434750.00 ns, 315.8735 ns/op | |
WorkloadResult 27: 2097152 op, 661439250.00 ns, 315.3988 ns/op | |
WorkloadResult 28: 2097152 op, 661915050.00 ns, 315.6257 ns/op | |
WorkloadResult 29: 2097152 op, 656550150.00 ns, 313.0675 ns/op | |
WorkloadResult 30: 2097152 op, 656110150.00 ns, 312.8577 ns/op | |
WorkloadResult 31: 2097152 op, 656453750.00 ns, 313.0215 ns/op | |
WorkloadResult 32: 2097152 op, 655895350.00 ns, 312.7553 ns/op | |
WorkloadResult 33: 2097152 op, 658051850.00 ns, 313.7836 ns/op | |
WorkloadResult 34: 2097152 op, 655958050.00 ns, 312.7852 ns/op | |
WorkloadResult 35: 2097152 op, 707521150.00 ns, 337.3724 ns/op | |
WorkloadResult 36: 2097152 op, 654425750.00 ns, 312.0545 ns/op | |
WorkloadResult 37: 2097152 op, 704885050.00 ns, 336.1154 ns/op | |
WorkloadResult 38: 2097152 op, 706796950.00 ns, 337.0270 ns/op | |
WorkloadResult 39: 2097152 op, 654217150.00 ns, 311.9550 ns/op | |
WorkloadResult 40: 2097152 op, 716897250.00 ns, 341.8432 ns/op | |
WorkloadResult 41: 2097152 op, 722459350.00 ns, 344.4955 ns/op | |
WorkloadResult 42: 2097152 op, 727457950.00 ns, 346.8790 ns/op | |
WorkloadResult 43: 2097152 op, 693316350.00 ns, 330.5990 ns/op | |
WorkloadResult 44: 2097152 op, 661929950.00 ns, 315.6328 ns/op | |
// AfterAll | |
// Benchmark Process 153340 has exited with code 0 | |
Mean = 325.3817 ns, StdErr = 1.8649 ns (0.57%); N = 44, StdDev = 12.3702 ns | |
Min = 310.4130 ns, Q1 = 313.0793 ns, Median = 320.1694 ns, Q3 = 337.1997 ns, Max = 346.8790 ns | |
IQR = 24.1204 ns, LowerFence = 276.8986 ns, UpperFence = 373.3804 ns | |
ConfidenceInterval = [318.7957 ns; 331.9678 ns] (CI 99.9%), Margin = 6.5860 ns (2.02% of Mean) | |
Skewness = 0.24, Kurtosis = 1.35, MValue = 3.48 | |
// ************************** | |
// Benchmark: Algorithms.WithBitConverter: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithBitConverter(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 3 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 437700.00 ns, 437.7000 us/op | |
WorkloadJitting 1: 1 op, 674100.00 ns, 674.1000 us/op | |
OverheadJitting 2: 16 op, 697800.00 ns, 43.6125 us/op | |
WorkloadJitting 2: 16 op, 742900.00 ns, 46.4312 us/op | |
WorkloadPilot 1: 16 op, 11700.00 ns, 731.2500 ns/op | |
WorkloadPilot 2: 32 op, 62800.00 ns, 1.9625 us/op | |
WorkloadPilot 3: 64 op, 35300.00 ns, 551.5625 ns/op | |
WorkloadPilot 4: 128 op, 97500.00 ns, 761.7188 ns/op | |
WorkloadPilot 5: 256 op, 73500.00 ns, 287.1094 ns/op | |
WorkloadPilot 6: 512 op, 158400.00 ns, 309.3750 ns/op | |
WorkloadPilot 7: 1024 op, 386400.00 ns, 377.3438 ns/op | |
WorkloadPilot 8: 2048 op, 970800.00 ns, 474.0234 ns/op | |
WorkloadPilot 9: 4096 op, 1190500.00 ns, 290.6494 ns/op | |
WorkloadPilot 10: 8192 op, 2349300.00 ns, 286.7798 ns/op | |
WorkloadPilot 11: 16384 op, 4805800.00 ns, 293.3228 ns/op | |
WorkloadPilot 12: 32768 op, 8677000.00 ns, 264.8010 ns/op | |
WorkloadPilot 13: 65536 op, 28806800.00 ns, 439.5569 ns/op | |
WorkloadPilot 14: 131072 op, 31330700.00 ns, 239.0343 ns/op | |
WorkloadPilot 15: 262144 op, 64148500.00 ns, 244.7071 ns/op | |
WorkloadPilot 16: 524288 op, 117739400.00 ns, 224.5701 ns/op | |
WorkloadPilot 17: 1048576 op, 233352900.00 ns, 222.5427 ns/op | |
WorkloadPilot 18: 2097152 op, 444475100.00 ns, 211.9422 ns/op | |
WorkloadPilot 19: 4194304 op, 911744200.00 ns, 217.3768 ns/op | |
OverheadWarmup 1: 4194304 op, 17908000.00 ns, 4.2696 ns/op | |
OverheadWarmup 2: 4194304 op, 17808700.00 ns, 4.2459 ns/op | |
OverheadWarmup 3: 4194304 op, 17861300.00 ns, 4.2585 ns/op | |
OverheadWarmup 4: 4194304 op, 17845700.00 ns, 4.2547 ns/op | |
OverheadWarmup 5: 4194304 op, 29821700.00 ns, 7.1100 ns/op | |
OverheadWarmup 6: 4194304 op, 32908100.00 ns, 7.8459 ns/op | |
OverheadWarmup 7: 4194304 op, 21284400.00 ns, 5.0746 ns/op | |
OverheadActual 1: 4194304 op, 18870000.00 ns, 4.4990 ns/op | |
OverheadActual 2: 4194304 op, 18884300.00 ns, 4.5024 ns/op | |
OverheadActual 3: 4194304 op, 19105200.00 ns, 4.5550 ns/op | |
OverheadActual 4: 4194304 op, 18915800.00 ns, 4.5099 ns/op | |
OverheadActual 5: 4194304 op, 18790400.00 ns, 4.4800 ns/op | |
OverheadActual 6: 4194304 op, 39119700.00 ns, 9.3269 ns/op | |
OverheadActual 7: 4194304 op, 38271100.00 ns, 9.1245 ns/op | |
OverheadActual 8: 4194304 op, 22145500.00 ns, 5.2799 ns/op | |
OverheadActual 9: 4194304 op, 25132900.00 ns, 5.9922 ns/op | |
OverheadActual 10: 4194304 op, 18152800.00 ns, 4.3280 ns/op | |
OverheadActual 11: 4194304 op, 20069600.00 ns, 4.7850 ns/op | |
OverheadActual 12: 4194304 op, 17925300.00 ns, 4.2737 ns/op | |
OverheadActual 13: 4194304 op, 36692000.00 ns, 8.7481 ns/op | |
OverheadActual 14: 4194304 op, 17854100.00 ns, 4.2567 ns/op | |
OverheadActual 15: 4194304 op, 37499300.00 ns, 8.9405 ns/op | |
OverheadActual 16: 4194304 op, 18148600.00 ns, 4.3270 ns/op | |
OverheadActual 17: 4194304 op, 17930800.00 ns, 4.2750 ns/op | |
OverheadActual 18: 4194304 op, 17937000.00 ns, 4.2765 ns/op | |
OverheadActual 19: 4194304 op, 17795600.00 ns, 4.2428 ns/op | |
OverheadActual 20: 4194304 op, 17788100.00 ns, 4.2410 ns/op | |
WorkloadWarmup 1: 4194304 op, 874130700.00 ns, 208.4090 ns/op | |
WorkloadWarmup 2: 4194304 op, 888595700.00 ns, 211.8577 ns/op | |
WorkloadWarmup 3: 4194304 op, 925593000.00 ns, 220.6786 ns/op | |
WorkloadWarmup 4: 4194304 op, 927368000.00 ns, 221.1018 ns/op | |
WorkloadWarmup 5: 4194304 op, 938824700.00 ns, 223.8333 ns/op | |
WorkloadWarmup 6: 4194304 op, 886422700.00 ns, 211.3396 ns/op | |
WorkloadWarmup 7: 4194304 op, 896523400.00 ns, 213.7478 ns/op | |
WorkloadWarmup 8: 4194304 op, 929032600.00 ns, 221.4986 ns/op | |
WorkloadWarmup 9: 4194304 op, 930894200.00 ns, 221.9425 ns/op | |
WorkloadWarmup 10: 4194304 op, 939603200.00 ns, 224.0189 ns/op | |
WorkloadWarmup 11: 4194304 op, 962830500.00 ns, 229.5567 ns/op | |
WorkloadWarmup 12: 4194304 op, 908980000.00 ns, 216.7177 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 4194304 op, 967895200.00 ns, 230.7642 ns/op | |
WorkloadActual 2: 4194304 op, 904099500.00 ns, 215.5541 ns/op | |
WorkloadActual 3: 4194304 op, 937020500.00 ns, 223.4031 ns/op | |
WorkloadActual 4: 4194304 op, 947542100.00 ns, 225.9116 ns/op | |
WorkloadActual 5: 4194304 op, 900170000.00 ns, 214.6173 ns/op | |
WorkloadActual 6: 4194304 op, 933854900.00 ns, 222.6484 ns/op | |
WorkloadActual 7: 4194304 op, 926382800.00 ns, 220.8669 ns/op | |
WorkloadActual 8: 4194304 op, 953509000.00 ns, 227.3343 ns/op | |
WorkloadActual 9: 4194304 op, 866976100.00 ns, 206.7032 ns/op | |
WorkloadActual 10: 4194304 op, 978416200.00 ns, 233.2726 ns/op | |
WorkloadActual 11: 4194304 op, 940514500.00 ns, 224.2361 ns/op | |
WorkloadActual 12: 4194304 op, 944505000.00 ns, 225.1875 ns/op | |
WorkloadActual 13: 4194304 op, 867183700.00 ns, 206.7527 ns/op | |
WorkloadActual 14: 4194304 op, 902577900.00 ns, 215.1913 ns/op | |
WorkloadActual 15: 4194304 op, 916631800.00 ns, 218.5421 ns/op | |
WorkloadActual 16: 4194304 op, 884270000.00 ns, 210.8264 ns/op | |
WorkloadActual 17: 4194304 op, 881761200.00 ns, 210.2283 ns/op | |
WorkloadActual 18: 4194304 op, 881642000.00 ns, 210.1998 ns/op | |
WorkloadActual 19: 4194304 op, 935938100.00 ns, 223.1450 ns/op | |
WorkloadActual 20: 4194304 op, 865936300.00 ns, 206.4553 ns/op | |
WorkloadActual 21: 4194304 op, 943352700.00 ns, 224.9128 ns/op | |
WorkloadActual 22: 4194304 op, 933003300.00 ns, 222.4453 ns/op | |
WorkloadActual 23: 4194304 op, 919988500.00 ns, 219.3424 ns/op | |
WorkloadActual 24: 4194304 op, 934874100.00 ns, 222.8914 ns/op | |
WorkloadActual 25: 4194304 op, 931956700.00 ns, 222.1958 ns/op | |
WorkloadActual 26: 4194304 op, 868626000.00 ns, 207.0966 ns/op | |
WorkloadActual 27: 4194304 op, 879774400.00 ns, 209.7546 ns/op | |
WorkloadActual 28: 4194304 op, 1726146100.00 ns, 411.5453 ns/op | |
WorkloadActual 29: 4194304 op, 873811400.00 ns, 208.3329 ns/op | |
WorkloadActual 30: 4194304 op, 898001300.00 ns, 214.1002 ns/op | |
WorkloadActual 31: 4194304 op, 922767300.00 ns, 220.0049 ns/op | |
WorkloadActual 32: 4194304 op, 898208200.00 ns, 214.1495 ns/op | |
WorkloadActual 33: 4194304 op, 926487800.00 ns, 220.8919 ns/op | |
WorkloadActual 34: 4194304 op, 905199900.00 ns, 215.8165 ns/op | |
WorkloadActual 35: 4194304 op, 918940400.00 ns, 219.0925 ns/op | |
WorkloadActual 36: 4194304 op, 902655800.00 ns, 215.2099 ns/op | |
WorkloadActual 37: 4194304 op, 931658500.00 ns, 222.1247 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 4194304 op, 949018050.00 ns, 226.2635 ns/op | |
WorkloadResult 2: 4194304 op, 885222350.00 ns, 211.0535 ns/op | |
WorkloadResult 3: 4194304 op, 918143350.00 ns, 218.9024 ns/op | |
WorkloadResult 4: 4194304 op, 928664950.00 ns, 221.4110 ns/op | |
WorkloadResult 5: 4194304 op, 881292850.00 ns, 210.1166 ns/op | |
WorkloadResult 6: 4194304 op, 914977750.00 ns, 218.1477 ns/op | |
WorkloadResult 7: 4194304 op, 907505650.00 ns, 216.3662 ns/op | |
WorkloadResult 8: 4194304 op, 934631850.00 ns, 222.8336 ns/op | |
WorkloadResult 9: 4194304 op, 848098950.00 ns, 202.2025 ns/op | |
WorkloadResult 10: 4194304 op, 959539050.00 ns, 228.7719 ns/op | |
WorkloadResult 11: 4194304 op, 921637350.00 ns, 219.7355 ns/op | |
WorkloadResult 12: 4194304 op, 925627850.00 ns, 220.6869 ns/op | |
WorkloadResult 13: 4194304 op, 848306550.00 ns, 202.2520 ns/op | |
WorkloadResult 14: 4194304 op, 883700750.00 ns, 210.6907 ns/op | |
WorkloadResult 15: 4194304 op, 897754650.00 ns, 214.0414 ns/op | |
WorkloadResult 16: 4194304 op, 865392850.00 ns, 206.3257 ns/op | |
WorkloadResult 17: 4194304 op, 862884050.00 ns, 205.7276 ns/op | |
WorkloadResult 18: 4194304 op, 862764850.00 ns, 205.6992 ns/op | |
WorkloadResult 19: 4194304 op, 917060950.00 ns, 218.6444 ns/op | |
WorkloadResult 20: 4194304 op, 847059150.00 ns, 201.9546 ns/op | |
WorkloadResult 21: 4194304 op, 924475550.00 ns, 220.4121 ns/op | |
WorkloadResult 22: 4194304 op, 914126150.00 ns, 217.9447 ns/op | |
WorkloadResult 23: 4194304 op, 901111350.00 ns, 214.8417 ns/op | |
WorkloadResult 24: 4194304 op, 915996950.00 ns, 218.3907 ns/op | |
WorkloadResult 25: 4194304 op, 913079550.00 ns, 217.6951 ns/op | |
WorkloadResult 26: 4194304 op, 849748850.00 ns, 202.5959 ns/op | |
WorkloadResult 27: 4194304 op, 860897250.00 ns, 205.2539 ns/op | |
WorkloadResult 28: 4194304 op, 854934250.00 ns, 203.8322 ns/op | |
WorkloadResult 29: 4194304 op, 879124150.00 ns, 209.5995 ns/op | |
WorkloadResult 30: 4194304 op, 903890150.00 ns, 215.5042 ns/op | |
WorkloadResult 31: 4194304 op, 879331050.00 ns, 209.6489 ns/op | |
WorkloadResult 32: 4194304 op, 907610650.00 ns, 216.3912 ns/op | |
WorkloadResult 33: 4194304 op, 886322750.00 ns, 211.3158 ns/op | |
WorkloadResult 34: 4194304 op, 900063250.00 ns, 214.5918 ns/op | |
WorkloadResult 35: 4194304 op, 883778650.00 ns, 210.7092 ns/op | |
WorkloadResult 36: 4194304 op, 912781350.00 ns, 217.6240 ns/op | |
// AfterAll | |
// Benchmark Process 13708 has exited with code 0 | |
Mean = 213.5605 ns, StdErr = 1.1859 ns (0.56%); N = 36, StdDev = 7.1152 ns | |
Min = 201.9546 ns, Q1 = 207.9626 ns, Median = 214.7167 ns, Q3 = 218.5175 ns, Max = 228.7719 ns | |
IQR = 10.5549 ns, LowerFence = 192.1303 ns, UpperFence = 234.3499 ns | |
ConfidenceInterval = [209.3019 ns; 217.8191 ns] (CI 99.9%), Margin = 4.2586 ns (1.99% of Mean) | |
Skewness = -0.03, Kurtosis = 2.07, MValue = 2 | |
// ************************** | |
// Benchmark: Algorithms.WithCharArray: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithCharArray(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 4 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 438000.00 ns, 438.0000 us/op | |
WorkloadJitting 1: 1 op, 622700.00 ns, 622.7000 us/op | |
OverheadJitting 2: 16 op, 1899800.00 ns, 118.7375 us/op | |
WorkloadJitting 2: 16 op, 2066400.00 ns, 129.1500 us/op | |
WorkloadPilot 1: 16 op, 2800.00 ns, 175.0000 ns/op | |
WorkloadPilot 2: 32 op, 3500.00 ns, 109.3750 ns/op | |
WorkloadPilot 3: 64 op, 5000.00 ns, 78.1250 ns/op | |
WorkloadPilot 4: 128 op, 9200.00 ns, 71.8750 ns/op | |
WorkloadPilot 5: 256 op, 19000.00 ns, 74.2188 ns/op | |
WorkloadPilot 6: 512 op, 91100.00 ns, 177.9297 ns/op | |
WorkloadPilot 7: 1024 op, 216500.00 ns, 211.4258 ns/op | |
WorkloadPilot 8: 2048 op, 292200.00 ns, 142.6758 ns/op | |
WorkloadPilot 9: 4096 op, 749700.00 ns, 183.0322 ns/op | |
WorkloadPilot 10: 8192 op, 1577400.00 ns, 192.5537 ns/op | |
WorkloadPilot 11: 16384 op, 1204200.00 ns, 73.4985 ns/op | |
WorkloadPilot 12: 32768 op, 2179700.00 ns, 66.5192 ns/op | |
WorkloadPilot 13: 65536 op, 4240500.00 ns, 64.7049 ns/op | |
WorkloadPilot 14: 131072 op, 6643900.00 ns, 50.6889 ns/op | |
WorkloadPilot 15: 262144 op, 12272100.00 ns, 46.8143 ns/op | |
WorkloadPilot 16: 524288 op, 24268200.00 ns, 46.2879 ns/op | |
WorkloadPilot 17: 1048576 op, 51924700.00 ns, 49.5193 ns/op | |
WorkloadPilot 18: 2097152 op, 111023300.00 ns, 52.9400 ns/op | |
WorkloadPilot 19: 4194304 op, 218021900.00 ns, 51.9805 ns/op | |
WorkloadPilot 20: 8388608 op, 425254200.00 ns, 50.6943 ns/op | |
WorkloadPilot 21: 16777216 op, 828568900.00 ns, 49.3866 ns/op | |
OverheadWarmup 1: 16777216 op, 74769900.00 ns, 4.4566 ns/op | |
OverheadWarmup 2: 16777216 op, 89379600.00 ns, 5.3274 ns/op | |
OverheadWarmup 3: 16777216 op, 71533500.00 ns, 4.2637 ns/op | |
OverheadWarmup 4: 16777216 op, 97592400.00 ns, 5.8170 ns/op | |
OverheadWarmup 5: 16777216 op, 95326600.00 ns, 5.6819 ns/op | |
OverheadActual 1: 16777216 op, 71414100.00 ns, 4.2566 ns/op | |
OverheadActual 2: 16777216 op, 70963400.00 ns, 4.2297 ns/op | |
OverheadActual 3: 16777216 op, 71227700.00 ns, 4.2455 ns/op | |
OverheadActual 4: 16777216 op, 70775800.00 ns, 4.2186 ns/op | |
OverheadActual 5: 16777216 op, 70813000.00 ns, 4.2208 ns/op | |
OverheadActual 6: 16777216 op, 70804700.00 ns, 4.2203 ns/op | |
OverheadActual 7: 16777216 op, 97006100.00 ns, 5.7820 ns/op | |
OverheadActual 8: 16777216 op, 71613300.00 ns, 4.2685 ns/op | |
OverheadActual 9: 16777216 op, 70894900.00 ns, 4.2257 ns/op | |
OverheadActual 10: 16777216 op, 71018800.00 ns, 4.2331 ns/op | |
OverheadActual 11: 16777216 op, 71222700.00 ns, 4.2452 ns/op | |
OverheadActual 12: 16777216 op, 96068600.00 ns, 5.7261 ns/op | |
OverheadActual 13: 16777216 op, 74570400.00 ns, 4.4447 ns/op | |
OverheadActual 14: 16777216 op, 95887500.00 ns, 5.7153 ns/op | |
OverheadActual 15: 16777216 op, 94949200.00 ns, 5.6594 ns/op | |
OverheadActual 16: 16777216 op, 74513300.00 ns, 4.4413 ns/op | |
OverheadActual 17: 16777216 op, 75021700.00 ns, 4.4716 ns/op | |
WorkloadWarmup 1: 16777216 op, 797236600.00 ns, 47.5190 ns/op | |
WorkloadWarmup 2: 16777216 op, 817261000.00 ns, 48.7126 ns/op | |
WorkloadWarmup 3: 16777216 op, 760997700.00 ns, 45.3590 ns/op | |
WorkloadWarmup 4: 16777216 op, 820119300.00 ns, 48.8829 ns/op | |
WorkloadWarmup 5: 16777216 op, 769608300.00 ns, 45.8722 ns/op | |
WorkloadWarmup 6: 16777216 op, 760848600.00 ns, 45.3501 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 794529100.00 ns, 47.3576 ns/op | |
WorkloadActual 2: 16777216 op, 750937100.00 ns, 44.7593 ns/op | |
WorkloadActual 3: 16777216 op, 776123300.00 ns, 46.2606 ns/op | |
WorkloadActual 4: 16777216 op, 773689300.00 ns, 46.1155 ns/op | |
WorkloadActual 5: 16777216 op, 815555800.00 ns, 48.6109 ns/op | |
WorkloadActual 6: 16777216 op, 760789300.00 ns, 45.3466 ns/op | |
WorkloadActual 7: 16777216 op, 756600300.00 ns, 45.0969 ns/op | |
WorkloadActual 8: 16777216 op, 812537700.00 ns, 48.4310 ns/op | |
WorkloadActual 9: 16777216 op, 806597500.00 ns, 48.0770 ns/op | |
WorkloadActual 10: 16777216 op, 830161200.00 ns, 49.4815 ns/op | |
WorkloadActual 11: 16777216 op, 824511900.00 ns, 49.1447 ns/op | |
WorkloadActual 12: 16777216 op, 800928500.00 ns, 47.7391 ns/op | |
WorkloadActual 13: 16777216 op, 787607100.00 ns, 46.9450 ns/op | |
WorkloadActual 14: 16777216 op, 837775800.00 ns, 49.9353 ns/op | |
WorkloadActual 15: 16777216 op, 830957000.00 ns, 49.5289 ns/op | |
WorkloadActual 16: 16777216 op, 778095600.00 ns, 46.3781 ns/op | |
WorkloadActual 17: 16777216 op, 765102800.00 ns, 45.6037 ns/op | |
WorkloadActual 18: 16777216 op, 757425500.00 ns, 45.1461 ns/op | |
WorkloadActual 19: 16777216 op, 759399200.00 ns, 45.2637 ns/op | |
WorkloadActual 20: 16777216 op, 755393400.00 ns, 45.0250 ns/op | |
WorkloadActual 21: 16777216 op, 796210500.00 ns, 47.4578 ns/op | |
WorkloadActual 22: 16777216 op, 755076100.00 ns, 45.0060 ns/op | |
WorkloadActual 23: 16777216 op, 804390500.00 ns, 47.9454 ns/op | |
WorkloadActual 24: 16777216 op, 759766900.00 ns, 45.2856 ns/op | |
WorkloadActual 25: 16777216 op, 757410700.00 ns, 45.1452 ns/op | |
WorkloadActual 26: 16777216 op, 792068200.00 ns, 47.2109 ns/op | |
WorkloadActual 27: 16777216 op, 799888400.00 ns, 47.6771 ns/op | |
WorkloadActual 28: 16777216 op, 765186700.00 ns, 45.6087 ns/op | |
WorkloadActual 29: 16777216 op, 824810900.00 ns, 49.1626 ns/op | |
WorkloadActual 30: 16777216 op, 807938100.00 ns, 48.1569 ns/op | |
WorkloadActual 31: 16777216 op, 807067300.00 ns, 48.1050 ns/op | |
WorkloadActual 32: 16777216 op, 804017000.00 ns, 47.9231 ns/op | |
WorkloadActual 33: 16777216 op, 804476800.00 ns, 47.9506 ns/op | |
WorkloadActual 34: 16777216 op, 813862200.00 ns, 48.5100 ns/op | |
WorkloadActual 35: 16777216 op, 817285500.00 ns, 48.7140 ns/op | |
WorkloadActual 36: 16777216 op, 786851800.00 ns, 46.9000 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 723115000.00 ns, 43.1010 ns/op | |
WorkloadResult 2: 16777216 op, 679523000.00 ns, 40.5027 ns/op | |
WorkloadResult 3: 16777216 op, 704709200.00 ns, 42.0039 ns/op | |
WorkloadResult 4: 16777216 op, 702275200.00 ns, 41.8589 ns/op | |
WorkloadResult 5: 16777216 op, 744141700.00 ns, 44.3543 ns/op | |
WorkloadResult 6: 16777216 op, 689375200.00 ns, 41.0900 ns/op | |
WorkloadResult 7: 16777216 op, 685186200.00 ns, 40.8403 ns/op | |
WorkloadResult 8: 16777216 op, 741123600.00 ns, 44.1744 ns/op | |
WorkloadResult 9: 16777216 op, 735183400.00 ns, 43.8203 ns/op | |
WorkloadResult 10: 16777216 op, 758747100.00 ns, 45.2249 ns/op | |
WorkloadResult 11: 16777216 op, 753097800.00 ns, 44.8881 ns/op | |
WorkloadResult 12: 16777216 op, 729514400.00 ns, 43.4824 ns/op | |
WorkloadResult 13: 16777216 op, 716193000.00 ns, 42.6884 ns/op | |
WorkloadResult 14: 16777216 op, 766361700.00 ns, 45.6787 ns/op | |
WorkloadResult 15: 16777216 op, 759542900.00 ns, 45.2723 ns/op | |
WorkloadResult 16: 16777216 op, 706681500.00 ns, 42.1215 ns/op | |
WorkloadResult 17: 16777216 op, 693688700.00 ns, 41.3471 ns/op | |
WorkloadResult 18: 16777216 op, 686011400.00 ns, 40.8895 ns/op | |
WorkloadResult 19: 16777216 op, 687985100.00 ns, 41.0071 ns/op | |
WorkloadResult 20: 16777216 op, 683979300.00 ns, 40.7683 ns/op | |
WorkloadResult 21: 16777216 op, 724796400.00 ns, 43.2012 ns/op | |
WorkloadResult 22: 16777216 op, 683662000.00 ns, 40.7494 ns/op | |
WorkloadResult 23: 16777216 op, 732976400.00 ns, 43.6888 ns/op | |
WorkloadResult 24: 16777216 op, 688352800.00 ns, 41.0290 ns/op | |
WorkloadResult 25: 16777216 op, 685996600.00 ns, 40.8886 ns/op | |
WorkloadResult 26: 16777216 op, 720654100.00 ns, 42.9543 ns/op | |
WorkloadResult 27: 16777216 op, 728474300.00 ns, 43.4205 ns/op | |
WorkloadResult 28: 16777216 op, 693772600.00 ns, 41.3521 ns/op | |
WorkloadResult 29: 16777216 op, 753396800.00 ns, 44.9059 ns/op | |
WorkloadResult 30: 16777216 op, 736524000.00 ns, 43.9003 ns/op | |
WorkloadResult 31: 16777216 op, 735653200.00 ns, 43.8483 ns/op | |
WorkloadResult 32: 16777216 op, 732602900.00 ns, 43.6665 ns/op | |
WorkloadResult 33: 16777216 op, 733062700.00 ns, 43.6939 ns/op | |
WorkloadResult 34: 16777216 op, 742448100.00 ns, 44.2534 ns/op | |
WorkloadResult 35: 16777216 op, 745871400.00 ns, 44.4574 ns/op | |
WorkloadResult 36: 16777216 op, 715437700.00 ns, 42.6434 ns/op | |
// AfterAll | |
// Benchmark Process 30052 has exited with code 0 | |
Mean = 42.8824 ns, StdErr = 0.2598 ns (0.61%); N = 36, StdDev = 1.5590 ns | |
Min = 40.5027 ns, Q1 = 41.2185 ns, Median = 43.1511 ns, Q3 = 44.0373 ns, Max = 45.6787 ns | |
IQR = 2.8188 ns, LowerFence = 36.9903 ns, UpperFence = 48.2656 ns | |
ConfidenceInterval = [41.9493 ns; 43.8155 ns] (CI 99.9%), Margin = 0.9331 ns (2.18% of Mean) | |
Skewness = -0.03, Kurtosis = 1.63, MValue = 3.45 | |
// ************************** | |
// Benchmark: Algorithms.WithBitShifts: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithBitShifts(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 5 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 440500.00 ns, 440.5000 us/op | |
WorkloadJitting 1: 1 op, 613700.00 ns, 613.7000 us/op | |
OverheadJitting 2: 16 op, 2153900.00 ns, 134.6188 us/op | |
WorkloadJitting 2: 16 op, 787600.00 ns, 49.2250 us/op | |
WorkloadPilot 1: 16 op, 2600.00 ns, 162.5000 ns/op | |
WorkloadPilot 2: 32 op, 3400.00 ns, 106.2500 ns/op | |
WorkloadPilot 3: 64 op, 4800.00 ns, 75.0000 ns/op | |
WorkloadPilot 4: 128 op, 9500.00 ns, 74.2188 ns/op | |
WorkloadPilot 5: 256 op, 47100.00 ns, 183.9844 ns/op | |
WorkloadPilot 6: 512 op, 72400.00 ns, 141.4062 ns/op | |
WorkloadPilot 7: 1024 op, 236000.00 ns, 230.4688 ns/op | |
WorkloadPilot 8: 2048 op, 115600.00 ns, 56.4453 ns/op | |
WorkloadPilot 9: 4096 op, 313700.00 ns, 76.5869 ns/op | |
WorkloadPilot 10: 8192 op, 566800.00 ns, 69.1895 ns/op | |
WorkloadPilot 11: 16384 op, 1129700.00 ns, 68.9514 ns/op | |
WorkloadPilot 12: 32768 op, 2118200.00 ns, 64.6423 ns/op | |
WorkloadPilot 13: 65536 op, 4032400.00 ns, 61.5295 ns/op | |
WorkloadPilot 14: 131072 op, 6120800.00 ns, 46.6980 ns/op | |
WorkloadPilot 15: 262144 op, 11511300.00 ns, 43.9121 ns/op | |
WorkloadPilot 16: 524288 op, 22063600.00 ns, 42.0830 ns/op | |
WorkloadPilot 17: 1048576 op, 62585300.00 ns, 59.6860 ns/op | |
WorkloadPilot 18: 2097152 op, 84227600.00 ns, 40.1628 ns/op | |
WorkloadPilot 19: 4194304 op, 196066400.00 ns, 46.7459 ns/op | |
WorkloadPilot 20: 8388608 op, 362512300.00 ns, 43.2148 ns/op | |
WorkloadPilot 21: 16777216 op, 677269400.00 ns, 40.3684 ns/op | |
OverheadWarmup 1: 16777216 op, 70811000.00 ns, 4.2207 ns/op | |
OverheadWarmup 2: 16777216 op, 71097500.00 ns, 4.2377 ns/op | |
OverheadWarmup 3: 16777216 op, 70251100.00 ns, 4.1873 ns/op | |
OverheadWarmup 4: 16777216 op, 70493300.00 ns, 4.2017 ns/op | |
OverheadWarmup 5: 16777216 op, 70674300.00 ns, 4.2125 ns/op | |
OverheadWarmup 6: 16777216 op, 70590100.00 ns, 4.2075 ns/op | |
OverheadActual 1: 16777216 op, 71303600.00 ns, 4.2500 ns/op | |
OverheadActual 2: 16777216 op, 70680400.00 ns, 4.2129 ns/op | |
OverheadActual 3: 16777216 op, 70206100.00 ns, 4.1846 ns/op | |
OverheadActual 4: 16777216 op, 70280200.00 ns, 4.1890 ns/op | |
OverheadActual 5: 16777216 op, 70765100.00 ns, 4.2179 ns/op | |
OverheadActual 6: 16777216 op, 70731800.00 ns, 4.2159 ns/op | |
OverheadActual 7: 16777216 op, 70311700.00 ns, 4.1909 ns/op | |
OverheadActual 8: 16777216 op, 70241700.00 ns, 4.1867 ns/op | |
OverheadActual 9: 16777216 op, 70688200.00 ns, 4.2133 ns/op | |
OverheadActual 10: 16777216 op, 70728000.00 ns, 4.2157 ns/op | |
OverheadActual 11: 16777216 op, 69834700.00 ns, 4.1625 ns/op | |
OverheadActual 12: 16777216 op, 84049300.00 ns, 5.0097 ns/op | |
OverheadActual 13: 16777216 op, 86349500.00 ns, 5.1468 ns/op | |
OverheadActual 14: 16777216 op, 94134200.00 ns, 5.6108 ns/op | |
OverheadActual 15: 16777216 op, 74545100.00 ns, 4.4432 ns/op | |
WorkloadWarmup 1: 16777216 op, 702481900.00 ns, 41.8712 ns/op | |
WorkloadWarmup 2: 16777216 op, 715685300.00 ns, 42.6582 ns/op | |
WorkloadWarmup 3: 16777216 op, 679967500.00 ns, 40.5292 ns/op | |
WorkloadWarmup 4: 16777216 op, 674518200.00 ns, 40.2044 ns/op | |
WorkloadWarmup 5: 16777216 op, 671460600.00 ns, 40.0222 ns/op | |
WorkloadWarmup 6: 16777216 op, 728350500.00 ns, 43.4131 ns/op | |
WorkloadWarmup 7: 16777216 op, 725326300.00 ns, 43.2328 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 744903300.00 ns, 44.3997 ns/op | |
WorkloadActual 2: 16777216 op, 750739700.00 ns, 44.7476 ns/op | |
WorkloadActual 3: 16777216 op, 761143400.00 ns, 45.3677 ns/op | |
WorkloadActual 4: 16777216 op, 729170100.00 ns, 43.4619 ns/op | |
WorkloadActual 5: 16777216 op, 762960600.00 ns, 45.4760 ns/op | |
WorkloadActual 6: 16777216 op, 713451600.00 ns, 42.5250 ns/op | |
WorkloadActual 7: 16777216 op, 696533700.00 ns, 41.5166 ns/op | |
WorkloadActual 8: 16777216 op, 753381100.00 ns, 44.9050 ns/op | |
WorkloadActual 9: 16777216 op, 752159300.00 ns, 44.8322 ns/op | |
WorkloadActual 10: 16777216 op, 708080000.00 ns, 42.2049 ns/op | |
WorkloadActual 11: 16777216 op, 740640800.00 ns, 44.1456 ns/op | |
WorkloadActual 12: 16777216 op, 692907500.00 ns, 41.3005 ns/op | |
WorkloadActual 13: 16777216 op, 678853200.00 ns, 40.4628 ns/op | |
WorkloadActual 14: 16777216 op, 746702200.00 ns, 44.5069 ns/op | |
WorkloadActual 15: 16777216 op, 755144800.00 ns, 45.0101 ns/op | |
WorkloadActual 16: 16777216 op, 713200200.00 ns, 42.5100 ns/op | |
WorkloadActual 17: 16777216 op, 748805100.00 ns, 44.6323 ns/op | |
WorkloadActual 18: 16777216 op, 785056500.00 ns, 46.7930 ns/op | |
WorkloadActual 19: 16777216 op, 682699800.00 ns, 40.6921 ns/op | |
WorkloadActual 20: 16777216 op, 735967900.00 ns, 43.8671 ns/op | |
WorkloadActual 21: 16777216 op, 679084900.00 ns, 40.4766 ns/op | |
WorkloadActual 22: 16777216 op, 679326500.00 ns, 40.4910 ns/op | |
WorkloadActual 23: 16777216 op, 730546100.00 ns, 43.5439 ns/op | |
WorkloadActual 24: 16777216 op, 714565300.00 ns, 42.5914 ns/op | |
WorkloadActual 25: 16777216 op, 677119300.00 ns, 40.3595 ns/op | |
WorkloadActual 26: 16777216 op, 676937800.00 ns, 40.3486 ns/op | |
WorkloadActual 27: 16777216 op, 673384500.00 ns, 40.1368 ns/op | |
WorkloadActual 28: 16777216 op, 693090500.00 ns, 41.3114 ns/op | |
WorkloadActual 29: 16777216 op, 685065100.00 ns, 40.8331 ns/op | |
WorkloadActual 30: 16777216 op, 801954300.00 ns, 47.8002 ns/op | |
WorkloadActual 31: 16777216 op, 729023300.00 ns, 43.4532 ns/op | |
WorkloadActual 32: 16777216 op, 707142800.00 ns, 42.1490 ns/op | |
WorkloadActual 33: 16777216 op, 738045400.00 ns, 43.9909 ns/op | |
WorkloadActual 34: 16777216 op, 716109000.00 ns, 42.6834 ns/op | |
WorkloadActual 35: 16777216 op, 723399600.00 ns, 43.1180 ns/op | |
WorkloadActual 36: 16777216 op, 679747300.00 ns, 40.5161 ns/op | |
WorkloadActual 37: 16777216 op, 711040100.00 ns, 42.3813 ns/op | |
WorkloadActual 38: 16777216 op, 692003200.00 ns, 41.2466 ns/op | |
WorkloadActual 39: 16777216 op, 713290800.00 ns, 42.5154 ns/op | |
WorkloadActual 40: 16777216 op, 745493000.00 ns, 44.4348 ns/op | |
WorkloadActual 41: 16777216 op, 715684500.00 ns, 42.6581 ns/op | |
WorkloadActual 42: 16777216 op, 755576100.00 ns, 45.0358 ns/op | |
WorkloadActual 43: 16777216 op, 751113300.00 ns, 44.7698 ns/op | |
WorkloadActual 44: 16777216 op, 770854000.00 ns, 45.9465 ns/op | |
WorkloadActual 45: 16777216 op, 750488200.00 ns, 44.7326 ns/op | |
WorkloadActual 46: 16777216 op, 736543600.00 ns, 43.9014 ns/op | |
WorkloadActual 47: 16777216 op, 690679500.00 ns, 41.1677 ns/op | |
WorkloadActual 48: 16777216 op, 772159100.00 ns, 46.0243 ns/op | |
WorkloadActual 49: 16777216 op, 739359000.00 ns, 44.0692 ns/op | |
WorkloadActual 50: 16777216 op, 728336000.00 ns, 43.4122 ns/op | |
WorkloadActual 51: 16777216 op, 738719400.00 ns, 44.0311 ns/op | |
WorkloadActual 52: 16777216 op, 733365300.00 ns, 43.7120 ns/op | |
WorkloadActual 53: 16777216 op, 734451200.00 ns, 43.7767 ns/op | |
WorkloadActual 54: 16777216 op, 741191200.00 ns, 44.1784 ns/op | |
WorkloadActual 55: 16777216 op, 750035400.00 ns, 44.7056 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 674175300.00 ns, 40.1840 ns/op | |
WorkloadResult 2: 16777216 op, 680011700.00 ns, 40.5319 ns/op | |
WorkloadResult 3: 16777216 op, 690415400.00 ns, 41.1520 ns/op | |
WorkloadResult 4: 16777216 op, 658442100.00 ns, 39.2462 ns/op | |
WorkloadResult 5: 16777216 op, 692232600.00 ns, 41.2603 ns/op | |
WorkloadResult 6: 16777216 op, 642723600.00 ns, 38.3093 ns/op | |
WorkloadResult 7: 16777216 op, 625805700.00 ns, 37.3009 ns/op | |
WorkloadResult 8: 16777216 op, 682653100.00 ns, 40.6893 ns/op | |
WorkloadResult 9: 16777216 op, 681431300.00 ns, 40.6165 ns/op | |
WorkloadResult 10: 16777216 op, 637352000.00 ns, 37.9891 ns/op | |
WorkloadResult 11: 16777216 op, 669912800.00 ns, 39.9299 ns/op | |
WorkloadResult 12: 16777216 op, 622179500.00 ns, 37.0848 ns/op | |
WorkloadResult 13: 16777216 op, 608125200.00 ns, 36.2471 ns/op | |
WorkloadResult 14: 16777216 op, 675974200.00 ns, 40.2912 ns/op | |
WorkloadResult 15: 16777216 op, 684416800.00 ns, 40.7944 ns/op | |
WorkloadResult 16: 16777216 op, 642472200.00 ns, 38.2943 ns/op | |
WorkloadResult 17: 16777216 op, 678077100.00 ns, 40.4165 ns/op | |
WorkloadResult 18: 16777216 op, 714328500.00 ns, 42.5773 ns/op | |
WorkloadResult 19: 16777216 op, 611971800.00 ns, 36.4764 ns/op | |
WorkloadResult 20: 16777216 op, 665239900.00 ns, 39.6514 ns/op | |
WorkloadResult 21: 16777216 op, 608356900.00 ns, 36.2609 ns/op | |
WorkloadResult 22: 16777216 op, 608598500.00 ns, 36.2753 ns/op | |
WorkloadResult 23: 16777216 op, 659818100.00 ns, 39.3282 ns/op | |
WorkloadResult 24: 16777216 op, 643837300.00 ns, 38.3757 ns/op | |
WorkloadResult 25: 16777216 op, 606391300.00 ns, 36.1437 ns/op | |
WorkloadResult 26: 16777216 op, 606209800.00 ns, 36.1329 ns/op | |
WorkloadResult 27: 16777216 op, 602656500.00 ns, 35.9211 ns/op | |
WorkloadResult 28: 16777216 op, 622362500.00 ns, 37.0957 ns/op | |
WorkloadResult 29: 16777216 op, 614337100.00 ns, 36.6173 ns/op | |
WorkloadResult 30: 16777216 op, 731226300.00 ns, 43.5845 ns/op | |
WorkloadResult 31: 16777216 op, 658295300.00 ns, 39.2375 ns/op | |
WorkloadResult 32: 16777216 op, 636414800.00 ns, 37.9333 ns/op | |
WorkloadResult 33: 16777216 op, 667317400.00 ns, 39.7752 ns/op | |
WorkloadResult 34: 16777216 op, 645381000.00 ns, 38.4677 ns/op | |
WorkloadResult 35: 16777216 op, 652671600.00 ns, 38.9023 ns/op | |
WorkloadResult 36: 16777216 op, 609019300.00 ns, 36.3004 ns/op | |
WorkloadResult 37: 16777216 op, 640312100.00 ns, 38.1656 ns/op | |
WorkloadResult 38: 16777216 op, 621275200.00 ns, 37.0309 ns/op | |
WorkloadResult 39: 16777216 op, 642562800.00 ns, 38.2997 ns/op | |
WorkloadResult 40: 16777216 op, 674765000.00 ns, 40.2191 ns/op | |
WorkloadResult 41: 16777216 op, 644956500.00 ns, 38.4424 ns/op | |
WorkloadResult 42: 16777216 op, 684848100.00 ns, 40.8201 ns/op | |
WorkloadResult 43: 16777216 op, 680385300.00 ns, 40.5541 ns/op | |
WorkloadResult 44: 16777216 op, 700126000.00 ns, 41.7308 ns/op | |
WorkloadResult 45: 16777216 op, 679760200.00 ns, 40.5169 ns/op | |
WorkloadResult 46: 16777216 op, 665815600.00 ns, 39.6857 ns/op | |
WorkloadResult 47: 16777216 op, 619951500.00 ns, 36.9520 ns/op | |
WorkloadResult 48: 16777216 op, 701431100.00 ns, 41.8086 ns/op | |
WorkloadResult 49: 16777216 op, 668631000.00 ns, 39.8535 ns/op | |
WorkloadResult 50: 16777216 op, 657608000.00 ns, 39.1965 ns/op | |
WorkloadResult 51: 16777216 op, 667991400.00 ns, 39.8154 ns/op | |
WorkloadResult 52: 16777216 op, 662637300.00 ns, 39.4963 ns/op | |
WorkloadResult 53: 16777216 op, 663723200.00 ns, 39.5610 ns/op | |
WorkloadResult 54: 16777216 op, 670463200.00 ns, 39.9627 ns/op | |
WorkloadResult 55: 16777216 op, 679307400.00 ns, 40.4899 ns/op | |
// AfterAll | |
// Benchmark Process 141968 has exited with code 0 | |
Mean = 39.0545 ns, StdErr = 0.2485 ns (0.64%); N = 55, StdDev = 1.8427 ns | |
Min = 35.9211 ns, Q1 = 37.3009 ns, Median = 39.3282 ns, Q3 = 40.4899 ns, Max = 43.5845 ns | |
IQR = 3.1889 ns, LowerFence = 32.5175 ns, UpperFence = 45.2733 ns | |
ConfidenceInterval = [38.1898 ns; 39.9191 ns] (CI 99.9%), Margin = 0.8647 ns (2.21% of Mean) | |
Skewness = -0.01, Kurtosis = 2.26, MValue = 2.57 | |
// ************************** | |
// Benchmark: Algorithms.WithLookupTable: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithLookupTable(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 6 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 421200.00 ns, 421.2000 us/op | |
WorkloadJitting 1: 1 op, 1333500.00 ns, 1.3335 ms/op | |
OverheadJitting 2: 16 op, 2074700.00 ns, 129.6687 us/op | |
WorkloadJitting 2: 16 op, 793500.00 ns, 49.5938 us/op | |
WorkloadPilot 1: 16 op, 11100.00 ns, 693.7500 ns/op | |
WorkloadPilot 2: 32 op, 16400.00 ns, 512.5000 ns/op | |
WorkloadPilot 3: 64 op, 28900.00 ns, 451.5625 ns/op | |
WorkloadPilot 4: 128 op, 19900.00 ns, 155.4688 ns/op | |
WorkloadPilot 5: 256 op, 112800.00 ns, 440.6250 ns/op | |
WorkloadPilot 6: 512 op, 78600.00 ns, 153.5156 ns/op | |
WorkloadPilot 7: 1024 op, 180300.00 ns, 176.0742 ns/op | |
WorkloadPilot 8: 2048 op, 312800.00 ns, 152.7344 ns/op | |
WorkloadPilot 9: 4096 op, 650000.00 ns, 158.6914 ns/op | |
WorkloadPilot 10: 8192 op, 3440200.00 ns, 419.9463 ns/op | |
WorkloadPilot 11: 16384 op, 2575200.00 ns, 157.1777 ns/op | |
WorkloadPilot 12: 32768 op, 5090900.00 ns, 155.3619 ns/op | |
WorkloadPilot 13: 65536 op, 10941100.00 ns, 166.9479 ns/op | |
WorkloadPilot 14: 131072 op, 18092900.00 ns, 138.0379 ns/op | |
WorkloadPilot 15: 262144 op, 35176000.00 ns, 134.1858 ns/op | |
WorkloadPilot 16: 524288 op, 70300200.00 ns, 134.0870 ns/op | |
WorkloadPilot 17: 1048576 op, 142062500.00 ns, 135.4814 ns/op | |
WorkloadPilot 18: 2097152 op, 264221400.00 ns, 125.9906 ns/op | |
WorkloadPilot 19: 4194304 op, 512995100.00 ns, 122.3076 ns/op | |
OverheadWarmup 1: 4194304 op, 30092400.00 ns, 7.1746 ns/op | |
OverheadWarmup 2: 4194304 op, 17969300.00 ns, 4.2842 ns/op | |
OverheadWarmup 3: 4194304 op, 17865400.00 ns, 4.2594 ns/op | |
OverheadWarmup 4: 4194304 op, 18066000.00 ns, 4.3073 ns/op | |
OverheadWarmup 5: 4194304 op, 29069600.00 ns, 6.9307 ns/op | |
OverheadWarmup 6: 4194304 op, 22679700.00 ns, 5.4073 ns/op | |
OverheadWarmup 7: 4194304 op, 21877100.00 ns, 5.2159 ns/op | |
OverheadWarmup 8: 4194304 op, 37289100.00 ns, 8.8904 ns/op | |
OverheadWarmup 9: 4194304 op, 33657100.00 ns, 8.0245 ns/op | |
OverheadActual 1: 4194304 op, 25555000.00 ns, 6.0928 ns/op | |
OverheadActual 2: 4194304 op, 20653400.00 ns, 4.9242 ns/op | |
OverheadActual 3: 4194304 op, 17745800.00 ns, 4.2309 ns/op | |
OverheadActual 4: 4194304 op, 17760800.00 ns, 4.2345 ns/op | |
OverheadActual 5: 4194304 op, 17903000.00 ns, 4.2684 ns/op | |
OverheadActual 6: 4194304 op, 17892800.00 ns, 4.2660 ns/op | |
OverheadActual 7: 4194304 op, 18073600.00 ns, 4.3091 ns/op | |
OverheadActual 8: 4194304 op, 17697600.00 ns, 4.2194 ns/op | |
OverheadActual 9: 4194304 op, 32829800.00 ns, 7.8272 ns/op | |
OverheadActual 10: 4194304 op, 18068200.00 ns, 4.3078 ns/op | |
OverheadActual 11: 4194304 op, 17788700.00 ns, 4.2412 ns/op | |
OverheadActual 12: 4194304 op, 17941000.00 ns, 4.2775 ns/op | |
OverheadActual 13: 4194304 op, 32367800.00 ns, 7.7171 ns/op | |
OverheadActual 14: 4194304 op, 17809700.00 ns, 4.2462 ns/op | |
OverheadActual 15: 4194304 op, 17743800.00 ns, 4.2305 ns/op | |
OverheadActual 16: 4194304 op, 42850600.00 ns, 10.2164 ns/op | |
OverheadActual 17: 4194304 op, 35025900.00 ns, 8.3508 ns/op | |
OverheadActual 18: 4194304 op, 18114500.00 ns, 4.3188 ns/op | |
OverheadActual 19: 4194304 op, 17520800.00 ns, 4.1773 ns/op | |
OverheadActual 20: 4194304 op, 25160100.00 ns, 5.9986 ns/op | |
WorkloadWarmup 1: 4194304 op, 542300600.00 ns, 129.2945 ns/op | |
WorkloadWarmup 2: 4194304 op, 551042900.00 ns, 131.3789 ns/op | |
WorkloadWarmup 3: 4194304 op, 515896200.00 ns, 122.9992 ns/op | |
WorkloadWarmup 4: 4194304 op, 514552700.00 ns, 122.6789 ns/op | |
WorkloadWarmup 5: 4194304 op, 550550200.00 ns, 131.2614 ns/op | |
WorkloadWarmup 6: 4194304 op, 516079200.00 ns, 123.0429 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 4194304 op, 512977500.00 ns, 122.3034 ns/op | |
WorkloadActual 2: 4194304 op, 556708300.00 ns, 132.7296 ns/op | |
WorkloadActual 3: 4194304 op, 560121100.00 ns, 133.5433 ns/op | |
WorkloadActual 4: 4194304 op, 582191600.00 ns, 138.8053 ns/op | |
WorkloadActual 5: 4194304 op, 557830900.00 ns, 132.9973 ns/op | |
WorkloadActual 6: 4194304 op, 585749000.00 ns, 139.6534 ns/op | |
WorkloadActual 7: 4194304 op, 572680600.00 ns, 136.5377 ns/op | |
WorkloadActual 8: 4194304 op, 562265900.00 ns, 134.0546 ns/op | |
WorkloadActual 9: 4194304 op, 565302400.00 ns, 134.7786 ns/op | |
WorkloadActual 10: 4194304 op, 518614200.00 ns, 123.6473 ns/op | |
WorkloadActual 11: 4194304 op, 571048600.00 ns, 136.1486 ns/op | |
WorkloadActual 12: 4194304 op, 535774200.00 ns, 127.7385 ns/op | |
WorkloadActual 13: 4194304 op, 561417900.00 ns, 133.8525 ns/op | |
WorkloadActual 14: 4194304 op, 521388400.00 ns, 124.3087 ns/op | |
WorkloadActual 15: 4194304 op, 554474000.00 ns, 132.1969 ns/op | |
WorkloadActual 16: 4194304 op, 563577600.00 ns, 134.3674 ns/op | |
WorkloadActual 17: 4194304 op, 516110200.00 ns, 123.0503 ns/op | |
WorkloadActual 18: 4194304 op, 518074700.00 ns, 123.5186 ns/op | |
WorkloadActual 19: 4194304 op, 517988900.00 ns, 123.4982 ns/op | |
WorkloadActual 20: 4194304 op, 580697600.00 ns, 138.4491 ns/op | |
WorkloadActual 21: 4194304 op, 569739000.00 ns, 135.8364 ns/op | |
WorkloadActual 22: 4194304 op, 552041900.00 ns, 131.6170 ns/op | |
WorkloadActual 23: 4194304 op, 528767400.00 ns, 126.0680 ns/op | |
WorkloadActual 24: 4194304 op, 564052400.00 ns, 134.4806 ns/op | |
WorkloadActual 25: 4194304 op, 526353300.00 ns, 125.4924 ns/op | |
WorkloadActual 26: 4194304 op, 574601700.00 ns, 136.9957 ns/op | |
WorkloadActual 27: 4194304 op, 543767000.00 ns, 129.6442 ns/op | |
WorkloadActual 28: 4194304 op, 520398800.00 ns, 124.0727 ns/op | |
WorkloadActual 29: 4194304 op, 537688200.00 ns, 128.1949 ns/op | |
WorkloadActual 30: 4194304 op, 537542700.00 ns, 128.1602 ns/op | |
WorkloadActual 31: 4194304 op, 521450500.00 ns, 124.3235 ns/op | |
WorkloadActual 32: 4194304 op, 584775600.00 ns, 139.4214 ns/op | |
WorkloadActual 33: 4194304 op, 517393500.00 ns, 123.3562 ns/op | |
WorkloadActual 34: 4194304 op, 573891700.00 ns, 136.8264 ns/op | |
WorkloadActual 35: 4194304 op, 565791100.00 ns, 134.8951 ns/op | |
WorkloadActual 36: 4194304 op, 567094700.00 ns, 135.2059 ns/op | |
WorkloadActual 37: 4194304 op, 554106000.00 ns, 132.1092 ns/op | |
WorkloadActual 38: 4194304 op, 540198200.00 ns, 128.7933 ns/op | |
WorkloadActual 39: 4194304 op, 566472400.00 ns, 135.0575 ns/op | |
WorkloadActual 40: 4194304 op, 517276600.00 ns, 123.3284 ns/op | |
WorkloadActual 41: 4194304 op, 560831900.00 ns, 133.7127 ns/op | |
WorkloadActual 42: 4194304 op, 507154000.00 ns, 120.9149 ns/op | |
WorkloadActual 43: 4194304 op, 510875900.00 ns, 121.8023 ns/op | |
WorkloadActual 44: 4194304 op, 506544000.00 ns, 120.7695 ns/op | |
WorkloadActual 45: 4194304 op, 562623500.00 ns, 134.1399 ns/op | |
WorkloadActual 46: 4194304 op, 521928400.00 ns, 124.4374 ns/op | |
WorkloadActual 47: 4194304 op, 559768800.00 ns, 133.4593 ns/op | |
WorkloadActual 48: 4194304 op, 537672100.00 ns, 128.1910 ns/op | |
WorkloadActual 49: 4194304 op, 507757500.00 ns, 121.0588 ns/op | |
WorkloadActual 50: 4194304 op, 580668000.00 ns, 138.4420 ns/op | |
WorkloadActual 51: 4194304 op, 560621400.00 ns, 133.6626 ns/op | |
WorkloadActual 52: 4194304 op, 563387400.00 ns, 134.3220 ns/op | |
WorkloadActual 53: 4194304 op, 569609200.00 ns, 135.8054 ns/op | |
WorkloadActual 54: 4194304 op, 558578200.00 ns, 133.1754 ns/op | |
WorkloadActual 55: 4194304 op, 543994100.00 ns, 129.6983 ns/op | |
WorkloadActual 56: 4194304 op, 588251200.00 ns, 140.2500 ns/op | |
WorkloadActual 57: 4194304 op, 567721000.00 ns, 135.3552 ns/op | |
WorkloadActual 58: 4194304 op, 552923900.00 ns, 131.8273 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 4194304 op, 494972900.00 ns, 118.0107 ns/op | |
WorkloadResult 2: 4194304 op, 538703700.00 ns, 128.4370 ns/op | |
WorkloadResult 3: 4194304 op, 542116500.00 ns, 129.2506 ns/op | |
WorkloadResult 4: 4194304 op, 564187000.00 ns, 134.5127 ns/op | |
WorkloadResult 5: 4194304 op, 539826300.00 ns, 128.7046 ns/op | |
WorkloadResult 6: 4194304 op, 567744400.00 ns, 135.3608 ns/op | |
WorkloadResult 7: 4194304 op, 554676000.00 ns, 132.2451 ns/op | |
WorkloadResult 8: 4194304 op, 544261300.00 ns, 129.7620 ns/op | |
WorkloadResult 9: 4194304 op, 547297800.00 ns, 130.4860 ns/op | |
WorkloadResult 10: 4194304 op, 500609600.00 ns, 119.3546 ns/op | |
WorkloadResult 11: 4194304 op, 553044000.00 ns, 131.8560 ns/op | |
WorkloadResult 12: 4194304 op, 517769600.00 ns, 123.4459 ns/op | |
WorkloadResult 13: 4194304 op, 543413300.00 ns, 129.5598 ns/op | |
WorkloadResult 14: 4194304 op, 503383800.00 ns, 120.0161 ns/op | |
WorkloadResult 15: 4194304 op, 536469400.00 ns, 127.9043 ns/op | |
WorkloadResult 16: 4194304 op, 545573000.00 ns, 130.0747 ns/op | |
WorkloadResult 17: 4194304 op, 498105600.00 ns, 118.7576 ns/op | |
WorkloadResult 18: 4194304 op, 500070100.00 ns, 119.2260 ns/op | |
WorkloadResult 19: 4194304 op, 499984300.00 ns, 119.2055 ns/op | |
WorkloadResult 20: 4194304 op, 562693000.00 ns, 134.1565 ns/op | |
WorkloadResult 21: 4194304 op, 551734400.00 ns, 131.5437 ns/op | |
WorkloadResult 22: 4194304 op, 534037300.00 ns, 127.3244 ns/op | |
WorkloadResult 23: 4194304 op, 510762800.00 ns, 121.7753 ns/op | |
WorkloadResult 24: 4194304 op, 546047800.00 ns, 130.1879 ns/op | |
WorkloadResult 25: 4194304 op, 508348700.00 ns, 121.1998 ns/op | |
WorkloadResult 26: 4194304 op, 556597100.00 ns, 132.7031 ns/op | |
WorkloadResult 27: 4194304 op, 525762400.00 ns, 125.3515 ns/op | |
WorkloadResult 28: 4194304 op, 502394200.00 ns, 119.7801 ns/op | |
WorkloadResult 29: 4194304 op, 519683600.00 ns, 123.9022 ns/op | |
WorkloadResult 30: 4194304 op, 519538100.00 ns, 123.8675 ns/op | |
WorkloadResult 31: 4194304 op, 503445900.00 ns, 120.0309 ns/op | |
WorkloadResult 32: 4194304 op, 566771000.00 ns, 135.1287 ns/op | |
WorkloadResult 33: 4194304 op, 499388900.00 ns, 119.0636 ns/op | |
WorkloadResult 34: 4194304 op, 555887100.00 ns, 132.5338 ns/op | |
WorkloadResult 35: 4194304 op, 547786500.00 ns, 130.6025 ns/op | |
WorkloadResult 36: 4194304 op, 549090100.00 ns, 130.9133 ns/op | |
WorkloadResult 37: 4194304 op, 536101400.00 ns, 127.8165 ns/op | |
WorkloadResult 38: 4194304 op, 522193600.00 ns, 124.5007 ns/op | |
WorkloadResult 39: 4194304 op, 548467800.00 ns, 130.7649 ns/op | |
WorkloadResult 40: 4194304 op, 499272000.00 ns, 119.0357 ns/op | |
WorkloadResult 41: 4194304 op, 542827300.00 ns, 129.4201 ns/op | |
WorkloadResult 42: 4194304 op, 489149400.00 ns, 116.6223 ns/op | |
WorkloadResult 43: 4194304 op, 492871300.00 ns, 117.5097 ns/op | |
WorkloadResult 44: 4194304 op, 488539400.00 ns, 116.4769 ns/op | |
WorkloadResult 45: 4194304 op, 544618900.00 ns, 129.8473 ns/op | |
WorkloadResult 46: 4194304 op, 503923800.00 ns, 120.1448 ns/op | |
WorkloadResult 47: 4194304 op, 541764200.00 ns, 129.1667 ns/op | |
WorkloadResult 48: 4194304 op, 519667500.00 ns, 123.8984 ns/op | |
WorkloadResult 49: 4194304 op, 489752900.00 ns, 116.7662 ns/op | |
WorkloadResult 50: 4194304 op, 562663400.00 ns, 134.1494 ns/op | |
WorkloadResult 51: 4194304 op, 542616800.00 ns, 129.3699 ns/op | |
WorkloadResult 52: 4194304 op, 545382800.00 ns, 130.0294 ns/op | |
WorkloadResult 53: 4194304 op, 551604600.00 ns, 131.5128 ns/op | |
WorkloadResult 54: 4194304 op, 540573600.00 ns, 128.8828 ns/op | |
WorkloadResult 55: 4194304 op, 525989500.00 ns, 125.4057 ns/op | |
WorkloadResult 56: 4194304 op, 570246600.00 ns, 135.9574 ns/op | |
WorkloadResult 57: 4194304 op, 549716400.00 ns, 131.0626 ns/op | |
WorkloadResult 58: 4194304 op, 534919300.00 ns, 127.5347 ns/op | |
// AfterAll | |
// Benchmark Process 1656 has exited with code 0 | |
Mean = 126.5881 ns, StdErr = 0.7486 ns (0.59%); N = 58, StdDev = 5.7014 ns | |
Min = 116.4769 ns, Q1 = 120.1448 ns, Median = 128.5708 ns, Q3 = 130.7649 ns, Max = 135.9574 ns | |
IQR = 10.6201 ns, LowerFence = 104.2146 ns, UpperFence = 146.6951 ns | |
ConfidenceInterval = [123.9907 ns; 129.1855 ns] (CI 99.9%), Margin = 2.5974 ns (2.05% of Mean) | |
Skewness = -0.3, Kurtosis = 1.76, MValue = 2.96 | |
// ************************** | |
// Benchmark: Algorithms.WithLookupArray: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithLookupArray(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 7 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 418700.00 ns, 418.7000 us/op | |
WorkloadJitting 1: 1 op, 681400.00 ns, 681.4000 us/op | |
OverheadJitting 2: 16 op, 791600.00 ns, 49.4750 us/op | |
WorkloadJitting 2: 16 op, 683600.00 ns, 42.7250 us/op | |
WorkloadPilot 1: 16 op, 2600.00 ns, 162.5000 ns/op | |
WorkloadPilot 2: 32 op, 2900.00 ns, 90.6250 ns/op | |
WorkloadPilot 3: 64 op, 4000.00 ns, 62.5000 ns/op | |
WorkloadPilot 4: 128 op, 6700.00 ns, 52.3438 ns/op | |
WorkloadPilot 5: 256 op, 11300.00 ns, 44.1406 ns/op | |
WorkloadPilot 6: 512 op, 24500.00 ns, 47.8516 ns/op | |
WorkloadPilot 7: 1024 op, 68200.00 ns, 66.6016 ns/op | |
WorkloadPilot 8: 2048 op, 79400.00 ns, 38.7695 ns/op | |
WorkloadPilot 9: 4096 op, 233900.00 ns, 57.1045 ns/op | |
WorkloadPilot 10: 8192 op, 487600.00 ns, 59.5215 ns/op | |
WorkloadPilot 11: 16384 op, 953300.00 ns, 58.1848 ns/op | |
WorkloadPilot 12: 32768 op, 2091000.00 ns, 63.8123 ns/op | |
WorkloadPilot 13: 65536 op, 4145900.00 ns, 63.2614 ns/op | |
WorkloadPilot 14: 131072 op, 5779700.00 ns, 44.0956 ns/op | |
WorkloadPilot 15: 262144 op, 10345700.00 ns, 39.4657 ns/op | |
WorkloadPilot 16: 524288 op, 20293500.00 ns, 38.7068 ns/op | |
WorkloadPilot 17: 1048576 op, 62193100.00 ns, 59.3120 ns/op | |
WorkloadPilot 18: 2097152 op, 82406900.00 ns, 39.2947 ns/op | |
WorkloadPilot 19: 4194304 op, 188597200.00 ns, 44.9651 ns/op | |
WorkloadPilot 20: 8388608 op, 329980500.00 ns, 39.3367 ns/op | |
WorkloadPilot 21: 16777216 op, 624328200.00 ns, 37.2129 ns/op | |
OverheadWarmup 1: 16777216 op, 70933000.00 ns, 4.2279 ns/op | |
OverheadWarmup 2: 16777216 op, 70970200.00 ns, 4.2302 ns/op | |
OverheadWarmup 3: 16777216 op, 70528600.00 ns, 4.2038 ns/op | |
OverheadWarmup 4: 16777216 op, 70828500.00 ns, 4.2217 ns/op | |
OverheadWarmup 5: 16777216 op, 98360300.00 ns, 5.8627 ns/op | |
OverheadWarmup 6: 16777216 op, 74378500.00 ns, 4.4333 ns/op | |
OverheadActual 1: 16777216 op, 74557900.00 ns, 4.4440 ns/op | |
OverheadActual 2: 16777216 op, 88160700.00 ns, 5.2548 ns/op | |
OverheadActual 3: 16777216 op, 70290600.00 ns, 4.1896 ns/op | |
OverheadActual 4: 16777216 op, 70556300.00 ns, 4.2055 ns/op | |
OverheadActual 5: 16777216 op, 69972200.00 ns, 4.1707 ns/op | |
OverheadActual 6: 16777216 op, 71108300.00 ns, 4.2384 ns/op | |
OverheadActual 7: 16777216 op, 70366300.00 ns, 4.1942 ns/op | |
OverheadActual 8: 16777216 op, 70262200.00 ns, 4.1880 ns/op | |
OverheadActual 9: 16777216 op, 70467100.00 ns, 4.2002 ns/op | |
OverheadActual 10: 16777216 op, 93660200.00 ns, 5.5826 ns/op | |
OverheadActual 11: 16777216 op, 84753400.00 ns, 5.0517 ns/op | |
OverheadActual 12: 16777216 op, 70589700.00 ns, 4.2075 ns/op | |
OverheadActual 13: 16777216 op, 71527200.00 ns, 4.2634 ns/op | |
OverheadActual 14: 16777216 op, 88000400.00 ns, 5.2452 ns/op | |
OverheadActual 15: 16777216 op, 74580300.00 ns, 4.4453 ns/op | |
OverheadActual 16: 16777216 op, 74817600.00 ns, 4.4595 ns/op | |
OverheadActual 17: 16777216 op, 92770200.00 ns, 5.5295 ns/op | |
OverheadActual 18: 16777216 op, 72841500.00 ns, 4.3417 ns/op | |
OverheadActual 19: 16777216 op, 71914200.00 ns, 4.2864 ns/op | |
OverheadActual 20: 16777216 op, 71510900.00 ns, 4.2624 ns/op | |
WorkloadWarmup 1: 16777216 op, 621351000.00 ns, 37.0354 ns/op | |
WorkloadWarmup 2: 16777216 op, 668515000.00 ns, 39.8466 ns/op | |
WorkloadWarmup 3: 16777216 op, 673462500.00 ns, 40.1415 ns/op | |
WorkloadWarmup 4: 16777216 op, 672932900.00 ns, 40.1099 ns/op | |
WorkloadWarmup 5: 16777216 op, 671262200.00 ns, 40.0103 ns/op | |
WorkloadWarmup 6: 16777216 op, 628316000.00 ns, 37.4506 ns/op | |
WorkloadWarmup 7: 16777216 op, 668658300.00 ns, 39.8551 ns/op | |
WorkloadWarmup 8: 16777216 op, 661211500.00 ns, 39.4113 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 649318200.00 ns, 38.7024 ns/op | |
WorkloadActual 2: 16777216 op, 655865100.00 ns, 39.0926 ns/op | |
WorkloadActual 3: 16777216 op, 628735700.00 ns, 37.4756 ns/op | |
WorkloadActual 4: 16777216 op, 621285500.00 ns, 37.0315 ns/op | |
WorkloadActual 5: 16777216 op, 625157700.00 ns, 37.2623 ns/op | |
WorkloadActual 6: 16777216 op, 619123300.00 ns, 36.9026 ns/op | |
WorkloadActual 7: 16777216 op, 625299500.00 ns, 37.2708 ns/op | |
WorkloadActual 8: 16777216 op, 619146900.00 ns, 36.9040 ns/op | |
WorkloadActual 9: 16777216 op, 622848000.00 ns, 37.1246 ns/op | |
WorkloadActual 10: 16777216 op, 672649700.00 ns, 40.0930 ns/op | |
WorkloadActual 11: 16777216 op, 660299200.00 ns, 39.3569 ns/op | |
WorkloadActual 12: 16777216 op, 685529700.00 ns, 40.8608 ns/op | |
WorkloadActual 13: 16777216 op, 620047800.00 ns, 36.9577 ns/op | |
WorkloadActual 14: 16777216 op, 653833700.00 ns, 38.9715 ns/op | |
WorkloadActual 15: 16777216 op, 661788500.00 ns, 39.4457 ns/op | |
WorkloadActual 16: 16777216 op, 667633700.00 ns, 39.7941 ns/op | |
WorkloadActual 17: 16777216 op, 681179000.00 ns, 40.6014 ns/op | |
WorkloadActual 18: 16777216 op, 623428900.00 ns, 37.1593 ns/op | |
WorkloadActual 19: 16777216 op, 659344300.00 ns, 39.3000 ns/op | |
WorkloadActual 20: 16777216 op, 675692100.00 ns, 40.2744 ns/op | |
WorkloadActual 21: 16777216 op, 637662700.00 ns, 38.0077 ns/op | |
WorkloadActual 22: 16777216 op, 655887800.00 ns, 39.0940 ns/op | |
WorkloadActual 23: 16777216 op, 621838200.00 ns, 37.0644 ns/op | |
WorkloadActual 24: 16777216 op, 620953900.00 ns, 37.0117 ns/op | |
WorkloadActual 25: 16777216 op, 707457500.00 ns, 42.1678 ns/op | |
WorkloadActual 26: 16777216 op, 696693800.00 ns, 41.5262 ns/op | |
WorkloadActual 27: 16777216 op, 681928200.00 ns, 40.6461 ns/op | |
WorkloadActual 28: 16777216 op, 686179500.00 ns, 40.8995 ns/op | |
WorkloadActual 29: 16777216 op, 680875900.00 ns, 40.5834 ns/op | |
WorkloadActual 30: 16777216 op, 668936700.00 ns, 39.8717 ns/op | |
WorkloadActual 31: 16777216 op, 628416200.00 ns, 37.4565 ns/op | |
WorkloadActual 32: 16777216 op, 635244300.00 ns, 37.8635 ns/op | |
WorkloadActual 33: 16777216 op, 682537500.00 ns, 40.6824 ns/op | |
WorkloadActual 34: 16777216 op, 655254300.00 ns, 39.0562 ns/op | |
WorkloadActual 35: 16777216 op, 622710500.00 ns, 37.1164 ns/op | |
WorkloadActual 36: 16777216 op, 646011800.00 ns, 38.5053 ns/op | |
WorkloadActual 37: 16777216 op, 668100900.00 ns, 39.8219 ns/op | |
WorkloadActual 38: 16777216 op, 621098400.00 ns, 37.0203 ns/op | |
WorkloadActual 39: 16777216 op, 664420700.00 ns, 39.6026 ns/op | |
WorkloadActual 40: 16777216 op, 640303400.00 ns, 38.1651 ns/op | |
WorkloadActual 41: 16777216 op, 706054000.00 ns, 42.0841 ns/op | |
WorkloadActual 42: 16777216 op, 646566600.00 ns, 38.5384 ns/op | |
WorkloadActual 43: 16777216 op, 668309100.00 ns, 39.8343 ns/op | |
WorkloadActual 44: 16777216 op, 625850500.00 ns, 37.3036 ns/op | |
WorkloadActual 45: 16777216 op, 629495500.00 ns, 37.5209 ns/op | |
WorkloadActual 46: 16777216 op, 618149400.00 ns, 36.8446 ns/op | |
WorkloadActual 47: 16777216 op, 619764100.00 ns, 36.9408 ns/op | |
WorkloadActual 48: 16777216 op, 670517400.00 ns, 39.9660 ns/op | |
WorkloadActual 49: 16777216 op, 638535600.00 ns, 38.0597 ns/op | |
WorkloadActual 50: 16777216 op, 673939900.00 ns, 40.1699 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 577597500.00 ns, 34.4275 ns/op | |
WorkloadResult 2: 16777216 op, 584144400.00 ns, 34.8177 ns/op | |
WorkloadResult 3: 16777216 op, 557015000.00 ns, 33.2007 ns/op | |
WorkloadResult 4: 16777216 op, 549564800.00 ns, 32.7566 ns/op | |
WorkloadResult 5: 16777216 op, 553437000.00 ns, 32.9874 ns/op | |
WorkloadResult 6: 16777216 op, 547402600.00 ns, 32.6277 ns/op | |
WorkloadResult 7: 16777216 op, 553578800.00 ns, 32.9959 ns/op | |
WorkloadResult 8: 16777216 op, 547426200.00 ns, 32.6291 ns/op | |
WorkloadResult 9: 16777216 op, 551127300.00 ns, 32.8497 ns/op | |
WorkloadResult 10: 16777216 op, 600929000.00 ns, 35.8182 ns/op | |
WorkloadResult 11: 16777216 op, 588578500.00 ns, 35.0820 ns/op | |
WorkloadResult 12: 16777216 op, 613809000.00 ns, 36.5859 ns/op | |
WorkloadResult 13: 16777216 op, 548327100.00 ns, 32.6828 ns/op | |
WorkloadResult 14: 16777216 op, 582113000.00 ns, 34.6966 ns/op | |
WorkloadResult 15: 16777216 op, 590067800.00 ns, 35.1708 ns/op | |
WorkloadResult 16: 16777216 op, 595913000.00 ns, 35.5192 ns/op | |
WorkloadResult 17: 16777216 op, 609458300.00 ns, 36.3265 ns/op | |
WorkloadResult 18: 16777216 op, 551708200.00 ns, 32.8844 ns/op | |
WorkloadResult 19: 16777216 op, 587623600.00 ns, 35.0251 ns/op | |
WorkloadResult 20: 16777216 op, 603971400.00 ns, 35.9995 ns/op | |
WorkloadResult 21: 16777216 op, 565942000.00 ns, 33.7328 ns/op | |
WorkloadResult 22: 16777216 op, 584167100.00 ns, 34.8191 ns/op | |
WorkloadResult 23: 16777216 op, 550117500.00 ns, 32.7896 ns/op | |
WorkloadResult 24: 16777216 op, 549233200.00 ns, 32.7368 ns/op | |
WorkloadResult 25: 16777216 op, 635736800.00 ns, 37.8929 ns/op | |
WorkloadResult 26: 16777216 op, 624973100.00 ns, 37.2513 ns/op | |
WorkloadResult 27: 16777216 op, 610207500.00 ns, 36.3712 ns/op | |
WorkloadResult 28: 16777216 op, 614458800.00 ns, 36.6246 ns/op | |
WorkloadResult 29: 16777216 op, 609155200.00 ns, 36.3085 ns/op | |
WorkloadResult 30: 16777216 op, 597216000.00 ns, 35.5968 ns/op | |
WorkloadResult 31: 16777216 op, 556695500.00 ns, 33.1816 ns/op | |
WorkloadResult 32: 16777216 op, 563523600.00 ns, 33.5886 ns/op | |
WorkloadResult 33: 16777216 op, 610816800.00 ns, 36.4075 ns/op | |
WorkloadResult 34: 16777216 op, 583533600.00 ns, 34.7813 ns/op | |
WorkloadResult 35: 16777216 op, 550989800.00 ns, 32.8416 ns/op | |
WorkloadResult 36: 16777216 op, 574291100.00 ns, 34.2304 ns/op | |
WorkloadResult 37: 16777216 op, 596380200.00 ns, 35.5470 ns/op | |
WorkloadResult 38: 16777216 op, 549377700.00 ns, 32.7455 ns/op | |
WorkloadResult 39: 16777216 op, 592700000.00 ns, 35.3277 ns/op | |
WorkloadResult 40: 16777216 op, 568582700.00 ns, 33.8902 ns/op | |
WorkloadResult 41: 16777216 op, 634333300.00 ns, 37.8092 ns/op | |
WorkloadResult 42: 16777216 op, 574845900.00 ns, 34.2635 ns/op | |
WorkloadResult 43: 16777216 op, 596588400.00 ns, 35.5594 ns/op | |
WorkloadResult 44: 16777216 op, 554129800.00 ns, 33.0287 ns/op | |
WorkloadResult 45: 16777216 op, 557774800.00 ns, 33.2460 ns/op | |
WorkloadResult 46: 16777216 op, 546428700.00 ns, 32.5697 ns/op | |
WorkloadResult 47: 16777216 op, 548043400.00 ns, 32.6659 ns/op | |
WorkloadResult 48: 16777216 op, 598796700.00 ns, 35.6911 ns/op | |
WorkloadResult 49: 16777216 op, 566814900.00 ns, 33.7848 ns/op | |
WorkloadResult 50: 16777216 op, 602219200.00 ns, 35.8951 ns/op | |
// AfterAll | |
// Benchmark Process 156920 has exited with code 0 | |
Mean = 34.5252 ns, StdErr = 0.2197 ns (0.64%); N = 50, StdDev = 1.5536 ns | |
Min = 32.5697 ns, Q1 = 32.9874 ns, Median = 34.5621 ns, Q3 = 35.6911 ns, Max = 37.8929 ns | |
IQR = 2.7036 ns, LowerFence = 28.9319 ns, UpperFence = 39.7465 ns | |
ConfidenceInterval = [33.7561 ns; 35.2943 ns] (CI 99.9%), Margin = 0.7691 ns (2.23% of Mean) | |
Skewness = 0.33, Kurtosis = 1.9, MValue = 2.56 | |
// ************************** | |
// Benchmark: Algorithms.WithDoubleLookupArray: DefaultJob [ByteArrayInput=Array[8]] | |
// *** Execute *** | |
// Launch: 1 / 1 | |
// Execute: dotnet "2425d37e-57c8-496d-9b4b-b221174b8d78.dll" --benchmarkName "HexBenchmark.Algorithms.WithDoubleLookupArray(ByteArrayInput: [1, 35, 69, 103, 137, ...])" --job "Default" --benchmarkId 8 in C:\git\HexBenchmark\HexBenchmark\bin\Release\netcoreapp3.0\2425d37e-57c8-496d-9b4b-b221174b8d78\bin\Release\netcoreapp3.0 | |
// BeforeAnythingElse | |
// Benchmark Process Environment Information: | |
// Runtime=.NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
// GC=Concurrent Workstation | |
// Job: DefaultJob | |
OverheadJitting 1: 1 op, 431300.00 ns, 431.3000 us/op | |
WorkloadJitting 1: 1 op, 613200.00 ns, 613.2000 us/op | |
OverheadJitting 2: 16 op, 780600.00 ns, 48.7875 us/op | |
WorkloadJitting 2: 16 op, 783900.00 ns, 48.9937 us/op | |
WorkloadPilot 1: 16 op, 2500.00 ns, 156.2500 ns/op | |
WorkloadPilot 2: 32 op, 2900.00 ns, 90.6250 ns/op | |
WorkloadPilot 3: 64 op, 10700.00 ns, 167.1875 ns/op | |
WorkloadPilot 4: 128 op, 18900.00 ns, 147.6562 ns/op | |
WorkloadPilot 5: 256 op, 119000.00 ns, 464.8438 ns/op | |
WorkloadPilot 6: 512 op, 27500.00 ns, 53.7109 ns/op | |
WorkloadPilot 7: 1024 op, 77600.00 ns, 75.7812 ns/op | |
WorkloadPilot 8: 2048 op, 85900.00 ns, 41.9434 ns/op | |
WorkloadPilot 9: 4096 op, 256400.00 ns, 62.5977 ns/op | |
WorkloadPilot 10: 8192 op, 544000.00 ns, 66.4062 ns/op | |
WorkloadPilot 11: 16384 op, 1011900.00 ns, 61.7615 ns/op | |
WorkloadPilot 12: 32768 op, 4537300.00 ns, 138.4674 ns/op | |
WorkloadPilot 13: 65536 op, 4093700.00 ns, 62.4649 ns/op | |
WorkloadPilot 14: 131072 op, 15051000.00 ns, 114.8300 ns/op | |
WorkloadPilot 15: 262144 op, 17487400.00 ns, 66.7091 ns/op | |
WorkloadPilot 16: 524288 op, 26127600.00 ns, 49.8344 ns/op | |
WorkloadPilot 17: 1048576 op, 44141300.00 ns, 42.0964 ns/op | |
WorkloadPilot 18: 2097152 op, 85226500.00 ns, 40.6392 ns/op | |
WorkloadPilot 19: 4194304 op, 169208500.00 ns, 40.3425 ns/op | |
WorkloadPilot 20: 8388608 op, 320818400.00 ns, 38.2445 ns/op | |
WorkloadPilot 21: 16777216 op, 633824900.00 ns, 37.7789 ns/op | |
OverheadWarmup 1: 16777216 op, 70707200.00 ns, 4.2145 ns/op | |
OverheadWarmup 2: 16777216 op, 72138500.00 ns, 4.2998 ns/op | |
OverheadWarmup 3: 16777216 op, 88369000.00 ns, 5.2672 ns/op | |
OverheadWarmup 4: 16777216 op, 75940300.00 ns, 4.5264 ns/op | |
OverheadWarmup 5: 16777216 op, 92494900.00 ns, 5.5131 ns/op | |
OverheadWarmup 6: 16777216 op, 73973700.00 ns, 4.4092 ns/op | |
OverheadActual 1: 16777216 op, 73957500.00 ns, 4.4082 ns/op | |
OverheadActual 2: 16777216 op, 89818600.00 ns, 5.3536 ns/op | |
OverheadActual 3: 16777216 op, 70822600.00 ns, 4.2214 ns/op | |
OverheadActual 4: 16777216 op, 71887800.00 ns, 4.2848 ns/op | |
OverheadActual 5: 16777216 op, 70848900.00 ns, 4.2229 ns/op | |
OverheadActual 6: 16777216 op, 70874000.00 ns, 4.2244 ns/op | |
OverheadActual 7: 16777216 op, 71191600.00 ns, 4.2434 ns/op | |
OverheadActual 8: 16777216 op, 99995000.00 ns, 5.9602 ns/op | |
OverheadActual 9: 16777216 op, 74263000.00 ns, 4.4264 ns/op | |
OverheadActual 10: 16777216 op, 81006700.00 ns, 4.8284 ns/op | |
OverheadActual 11: 16777216 op, 90157500.00 ns, 5.3738 ns/op | |
OverheadActual 12: 16777216 op, 86463900.00 ns, 5.1537 ns/op | |
OverheadActual 13: 16777216 op, 90918500.00 ns, 5.4192 ns/op | |
OverheadActual 14: 16777216 op, 70970100.00 ns, 4.2301 ns/op | |
OverheadActual 15: 16777216 op, 97596200.00 ns, 5.8172 ns/op | |
OverheadActual 16: 16777216 op, 92020400.00 ns, 5.4848 ns/op | |
OverheadActual 17: 16777216 op, 92314600.00 ns, 5.5024 ns/op | |
OverheadActual 18: 16777216 op, 87380900.00 ns, 5.2083 ns/op | |
OverheadActual 19: 16777216 op, 70239500.00 ns, 4.1866 ns/op | |
OverheadActual 20: 16777216 op, 70059300.00 ns, 4.1759 ns/op | |
WorkloadWarmup 1: 16777216 op, 663414800.00 ns, 39.5426 ns/op | |
WorkloadWarmup 2: 16777216 op, 680741900.00 ns, 40.5754 ns/op | |
WorkloadWarmup 3: 16777216 op, 647734400.00 ns, 38.6080 ns/op | |
WorkloadWarmup 4: 16777216 op, 665627500.00 ns, 39.6745 ns/op | |
WorkloadWarmup 5: 16777216 op, 663202800.00 ns, 39.5300 ns/op | |
WorkloadWarmup 6: 16777216 op, 683910500.00 ns, 40.7642 ns/op | |
// BeforeActualRun | |
WorkloadActual 1: 16777216 op, 639538900.00 ns, 38.1195 ns/op | |
WorkloadActual 2: 16777216 op, 724045300.00 ns, 43.1565 ns/op | |
WorkloadActual 3: 16777216 op, 638795600.00 ns, 38.0752 ns/op | |
WorkloadActual 4: 16777216 op, 691923500.00 ns, 41.2419 ns/op | |
WorkloadActual 5: 16777216 op, 656833200.00 ns, 39.1503 ns/op | |
WorkloadActual 6: 16777216 op, 642288900.00 ns, 38.2834 ns/op | |
WorkloadActual 7: 16777216 op, 636336300.00 ns, 37.9286 ns/op | |
WorkloadActual 8: 16777216 op, 642977900.00 ns, 38.3245 ns/op | |
WorkloadActual 9: 16777216 op, 636823000.00 ns, 37.9576 ns/op | |
WorkloadActual 10: 16777216 op, 661486300.00 ns, 39.4277 ns/op | |
WorkloadActual 11: 16777216 op, 644199200.00 ns, 38.3973 ns/op | |
WorkloadActual 12: 16777216 op, 642494700.00 ns, 38.2957 ns/op | |
WorkloadActual 13: 16777216 op, 678490100.00 ns, 40.4412 ns/op | |
WorkloadActual 14: 16777216 op, 693506800.00 ns, 41.3362 ns/op | |
WorkloadActual 15: 16777216 op, 655788700.00 ns, 39.0881 ns/op | |
WorkloadActual 16: 16777216 op, 668424000.00 ns, 39.8412 ns/op | |
WorkloadActual 17: 16777216 op, 636647500.00 ns, 37.9471 ns/op | |
WorkloadActual 18: 16777216 op, 640582700.00 ns, 38.1817 ns/op | |
WorkloadActual 19: 16777216 op, 667780600.00 ns, 39.8028 ns/op | |
WorkloadActual 20: 16777216 op, 689393300.00 ns, 41.0910 ns/op | |
WorkloadActual 21: 16777216 op, 636214300.00 ns, 37.9213 ns/op | |
WorkloadActual 22: 16777216 op, 634317900.00 ns, 37.8083 ns/op | |
WorkloadActual 23: 16777216 op, 638295300.00 ns, 38.0454 ns/op | |
WorkloadActual 24: 16777216 op, 695272600.00 ns, 41.4415 ns/op | |
WorkloadActual 25: 16777216 op, 684433700.00 ns, 40.7954 ns/op | |
WorkloadActual 26: 16777216 op, 694560600.00 ns, 41.3990 ns/op | |
WorkloadActual 27: 16777216 op, 636856300.00 ns, 37.9596 ns/op | |
WorkloadActual 28: 16777216 op, 639262700.00 ns, 38.1030 ns/op | |
WorkloadActual 29: 16777216 op, 636615400.00 ns, 37.9452 ns/op | |
WorkloadActual 30: 16777216 op, 635457400.00 ns, 37.8762 ns/op | |
WorkloadActual 31: 16777216 op, 686012500.00 ns, 40.8895 ns/op | |
WorkloadActual 32: 16777216 op, 695742500.00 ns, 41.4695 ns/op | |
WorkloadActual 33: 16777216 op, 648441800.00 ns, 38.6501 ns/op | |
WorkloadActual 34: 16777216 op, 706556200.00 ns, 42.1140 ns/op | |
WorkloadActual 35: 16777216 op, 725293100.00 ns, 43.2308 ns/op | |
WorkloadActual 36: 16777216 op, 706283000.00 ns, 42.0977 ns/op | |
WorkloadActual 37: 16777216 op, 648347400.00 ns, 38.6445 ns/op | |
WorkloadActual 38: 16777216 op, 664805400.00 ns, 39.6255 ns/op | |
WorkloadActual 39: 16777216 op, 668950700.00 ns, 39.8726 ns/op | |
WorkloadActual 40: 16777216 op, 635181700.00 ns, 37.8598 ns/op | |
WorkloadActual 41: 16777216 op, 638162100.00 ns, 38.0374 ns/op | |
WorkloadActual 42: 16777216 op, 701438700.00 ns, 41.8090 ns/op | |
WorkloadActual 43: 16777216 op, 654907500.00 ns, 39.0355 ns/op | |
WorkloadActual 44: 16777216 op, 673057700.00 ns, 40.1174 ns/op | |
WorkloadActual 45: 16777216 op, 635984900.00 ns, 37.9077 ns/op | |
WorkloadActual 46: 16777216 op, 666117600.00 ns, 39.7037 ns/op | |
WorkloadActual 47: 16777216 op, 685954900.00 ns, 40.8861 ns/op | |
WorkloadActual 48: 16777216 op, 637066000.00 ns, 37.9721 ns/op | |
WorkloadActual 49: 16777216 op, 684324700.00 ns, 40.7889 ns/op | |
WorkloadActual 50: 16777216 op, 685185900.00 ns, 40.8403 ns/op | |
// AfterActualRun | |
WorkloadResult 1: 16777216 op, 561904050.00 ns, 33.4921 ns/op | |
WorkloadResult 2: 16777216 op, 646410450.00 ns, 38.5291 ns/op | |
WorkloadResult 3: 16777216 op, 561160750.00 ns, 33.4478 ns/op | |
WorkloadResult 4: 16777216 op, 614288650.00 ns, 36.6145 ns/op | |
WorkloadResult 5: 16777216 op, 579198350.00 ns, 34.5229 ns/op | |
WorkloadResult 6: 16777216 op, 564654050.00 ns, 33.6560 ns/op | |
WorkloadResult 7: 16777216 op, 558701450.00 ns, 33.3012 ns/op | |
WorkloadResult 8: 16777216 op, 565343050.00 ns, 33.6971 ns/op | |
WorkloadResult 9: 16777216 op, 559188150.00 ns, 33.3302 ns/op | |
WorkloadResult 10: 16777216 op, 583851450.00 ns, 34.8003 ns/op | |
WorkloadResult 11: 16777216 op, 566564350.00 ns, 33.7699 ns/op | |
WorkloadResult 12: 16777216 op, 564859850.00 ns, 33.6683 ns/op | |
WorkloadResult 13: 16777216 op, 600855250.00 ns, 35.8138 ns/op | |
WorkloadResult 14: 16777216 op, 615871950.00 ns, 36.7088 ns/op | |
WorkloadResult 15: 16777216 op, 578153850.00 ns, 34.4607 ns/op | |
WorkloadResult 16: 16777216 op, 590789150.00 ns, 35.2138 ns/op | |
WorkloadResult 17: 16777216 op, 559012650.00 ns, 33.3198 ns/op | |
WorkloadResult 18: 16777216 op, 562947850.00 ns, 33.5543 ns/op | |
WorkloadResult 19: 16777216 op, 590145750.00 ns, 35.1754 ns/op | |
WorkloadResult 20: 16777216 op, 611758450.00 ns, 36.4636 ns/op | |
WorkloadResult 21: 16777216 op, 558579450.00 ns, 33.2939 ns/op | |
WorkloadResult 22: 16777216 op, 556683050.00 ns, 33.1809 ns/op | |
WorkloadResult 23: 16777216 op, 560660450.00 ns, 33.4180 ns/op | |
WorkloadResult 24: 16777216 op, 617637750.00 ns, 36.8141 ns/op | |
WorkloadResult 25: 16777216 op, 606798850.00 ns, 36.1680 ns/op | |
WorkloadResult 26: 16777216 op, 616925750.00 ns, 36.7716 ns/op | |
WorkloadResult 27: 16777216 op, 559221450.00 ns, 33.3322 ns/op | |
WorkloadResult 28: 16777216 op, 561627850.00 ns, 33.4756 ns/op | |
WorkloadResult 29: 16777216 op, 558980550.00 ns, 33.3178 ns/op | |
WorkloadResult 30: 16777216 op, 557822550.00 ns, 33.2488 ns/op | |
WorkloadResult 31: 16777216 op, 608377650.00 ns, 36.2621 ns/op | |
WorkloadResult 32: 16777216 op, 618107650.00 ns, 36.8421 ns/op | |
WorkloadResult 33: 16777216 op, 570806950.00 ns, 34.0227 ns/op | |
WorkloadResult 34: 16777216 op, 628921350.00 ns, 37.4866 ns/op | |
WorkloadResult 35: 16777216 op, 647658250.00 ns, 38.6034 ns/op | |
WorkloadResult 36: 16777216 op, 628648150.00 ns, 37.4703 ns/op | |
WorkloadResult 37: 16777216 op, 570712550.00 ns, 34.0171 ns/op | |
WorkloadResult 38: 16777216 op, 587170550.00 ns, 34.9981 ns/op | |
WorkloadResult 39: 16777216 op, 591315850.00 ns, 35.2452 ns/op | |
WorkloadResult 40: 16777216 op, 557546850.00 ns, 33.2324 ns/op | |
WorkloadResult 41: 16777216 op, 560527250.00 ns, 33.4100 ns/op | |
WorkloadResult 42: 16777216 op, 623803850.00 ns, 37.1816 ns/op | |
WorkloadResult 43: 16777216 op, 577272650.00 ns, 34.4081 ns/op | |
WorkloadResult 44: 16777216 op, 595422850.00 ns, 35.4900 ns/op | |
WorkloadResult 45: 16777216 op, 558350050.00 ns, 33.2803 ns/op | |
WorkloadResult 46: 16777216 op, 588482750.00 ns, 35.0763 ns/op | |
WorkloadResult 47: 16777216 op, 608320050.00 ns, 36.2587 ns/op | |
WorkloadResult 48: 16777216 op, 559431150.00 ns, 33.3447 ns/op | |
WorkloadResult 49: 16777216 op, 606689850.00 ns, 36.1615 ns/op | |
WorkloadResult 50: 16777216 op, 607551050.00 ns, 36.2129 ns/op | |
// AfterAll | |
// Benchmark Process 35836 has exited with code 0 | |
Mean = 34.9113 ns, StdErr = 0.2249 ns (0.64%); N = 50, StdDev = 1.5905 ns | |
Min = 33.1809 ns, Q1 = 33.4180 ns, Median = 34.4918 ns, Q3 = 36.2587 ns, Max = 38.6034 ns | |
IQR = 2.8407 ns, LowerFence = 29.1569 ns, UpperFence = 40.5198 ns | |
ConfidenceInterval = [34.1239 ns; 35.6986 ns] (CI 99.9%), Margin = 0.7874 ns (2.26% of Mean) | |
Skewness = 0.58, Kurtosis = 2.07, MValue = 2.67 | |
// ***** BenchmarkRunner: Finish ***** | |
// * Export * | |
BenchmarkDotNet.Artifacts\results\HexBenchmark.Algorithms-report.csv | |
BenchmarkDotNet.Artifacts\results\HexBenchmark.Algorithms-report-github.md | |
BenchmarkDotNet.Artifacts\results\HexBenchmark.Algorithms-report.html | |
// * Detailed results * | |
Algorithms.WithStringJoin: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 507.2133 ns, StdErr = 2.9232 ns (0.58%); N = 57, StdDev = 22.0700 ns | |
Min = 472.8441 ns, Q1 = 485.3258 ns, Median = 512.4944 ns, Q3 = 523.3744 ns, Max = 555.9567 ns | |
IQR = 38.0486 ns, LowerFence = 428.2530 ns, UpperFence = 580.4472 ns | |
ConfidenceInterval = [497.0612 ns; 517.3655 ns] (CI 99.9%), Margin = 10.1522 ns (2.00% of Mean) | |
Skewness = -0.1, Kurtosis = 2.04, MValue = 2.86 | |
-------------------- Histogram -------------------- | |
[471.543 ns ; 481.579 ns) | @@@@@@@@@@@@@ | |
[481.579 ns ; 499.544 ns) | @@@@@@@@@ | |
[499.544 ns ; 509.909 ns) | @ | |
[509.909 ns ; 530.418 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
[530.418 ns ; 558.705 ns) | @@@@@@ | |
--------------------------------------------------- | |
Algorithms.WithStringBuilder: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 337.1035 ns, StdErr = 2.0840 ns (0.62%); N = 46, StdDev = 14.1346 ns | |
Min = 311.0356 ns, Q1 = 329.0305 ns, Median = 338.9391 ns, Q3 = 343.5276 ns, Max = 370.1647 ns | |
IQR = 14.4970 ns, LowerFence = 307.2850 ns, UpperFence = 365.2731 ns | |
ConfidenceInterval = [329.7672 ns; 344.4398 ns] (CI 99.9%), Margin = 7.3363 ns (2.18% of Mean) | |
Skewness = -0.02, Kurtosis = 2.8, MValue = 2.7 | |
-------------------- Histogram -------------------- | |
[309.828 ns ; 322.582 ns) | @@@@@@@@ | |
[322.582 ns ; 330.035 ns) | @@@@ | |
[330.035 ns ; 336.795 ns) | @@@@@ | |
[336.795 ns ; 346.197 ns) | @@@@@@@@@@@@@@@@@@ | |
[346.197 ns ; 359.416 ns) | @@@@@@@@@ | |
[359.416 ns ; 373.617 ns) | @@ | |
--------------------------------------------------- | |
Algorithms.WithStringBuilderForInt: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 325.3817 ns, StdErr = 1.8649 ns (0.57%); N = 44, StdDev = 12.3702 ns | |
Min = 310.4130 ns, Q1 = 313.0793 ns, Median = 320.1694 ns, Q3 = 337.1997 ns, Max = 346.8790 ns | |
IQR = 24.1204 ns, LowerFence = 276.8986 ns, UpperFence = 373.3804 ns | |
ConfidenceInterval = [318.7957 ns; 331.9678 ns] (CI 99.9%), Margin = 6.5860 ns (2.02% of Mean) | |
Skewness = 0.24, Kurtosis = 1.35, MValue = 3.48 | |
-------------------- Histogram -------------------- | |
[310.012 ns ; 323.151 ns) | @@@@@@@@@@@@@@@@@@@@@@@ | |
[323.151 ns ; 334.536 ns) | @@@@@ | |
[334.536 ns ; 347.805 ns) | @@@@@@@@@@@@@@@@ | |
--------------------------------------------------- | |
Algorithms.WithBitConverter: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 213.5605 ns, StdErr = 1.1859 ns (0.56%); N = 36, StdDev = 7.1152 ns | |
Min = 201.9546 ns, Q1 = 207.9626 ns, Median = 214.7167 ns, Q3 = 218.5175 ns, Max = 228.7719 ns | |
IQR = 10.5549 ns, LowerFence = 192.1303 ns, UpperFence = 234.3499 ns | |
ConfidenceInterval = [209.3019 ns; 217.8191 ns] (CI 99.9%), Margin = 4.2586 ns (1.99% of Mean) | |
Skewness = -0.03, Kurtosis = 2.07, MValue = 2 | |
-------------------- Histogram -------------------- | |
[201.925 ns ; 208.353 ns) | @@@@@@@@@ | |
[208.353 ns ; 216.964 ns) | @@@@@@@@@@@@@ | |
[216.964 ns ; 224.344 ns) | @@@@@@@@@@@@ | |
[224.344 ns ; 229.793 ns) | @@ | |
--------------------------------------------------- | |
Algorithms.WithCharArray: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 42.8824 ns, StdErr = 0.2598 ns (0.61%); N = 36, StdDev = 1.5590 ns | |
Min = 40.5027 ns, Q1 = 41.2185 ns, Median = 43.1511 ns, Q3 = 44.0373 ns, Max = 45.6787 ns | |
IQR = 2.8188 ns, LowerFence = 36.9903 ns, UpperFence = 48.2656 ns | |
ConfidenceInterval = [41.9493 ns; 43.8155 ns] (CI 99.9%), Margin = 0.9331 ns (2.18% of Mean) | |
Skewness = -0.03, Kurtosis = 1.63, MValue = 3.45 | |
-------------------- Histogram -------------------- | |
[40.090 ns ; 41.464 ns) | @@@@@@@@@@@ | |
[41.464 ns ; 42.410 ns) | @@@ | |
[42.410 ns ; 43.462 ns) | @@@@@@ | |
[43.462 ns ; 44.503 ns) | @@@@@@@@@@@ | |
[44.503 ns ; 45.736 ns) | @@@@@ | |
--------------------------------------------------- | |
Algorithms.WithBitShifts: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 39.0545 ns, StdErr = 0.2485 ns (0.64%); N = 55, StdDev = 1.8427 ns | |
Min = 35.9211 ns, Q1 = 37.3009 ns, Median = 39.3282 ns, Q3 = 40.4899 ns, Max = 43.5845 ns | |
IQR = 3.1889 ns, LowerFence = 32.5175 ns, UpperFence = 45.2733 ns | |
ConfidenceInterval = [38.1898 ns; 39.9191 ns] (CI 99.9%), Margin = 0.8647 ns (2.21% of Mean) | |
Skewness = -0.01, Kurtosis = 2.26, MValue = 2.57 | |
-------------------- Histogram -------------------- | |
[35.845 ns ; 36.693 ns) | @@@@@@@@@ | |
[36.693 ns ; 37.550 ns) | @@@@@ | |
[37.550 ns ; 38.624 ns) | @@@@@@@@@ | |
[38.624 ns ; 39.772 ns) | @@@@@@@@@ | |
[39.772 ns ; 40.620 ns) | @@@@@@@@@@@@@@ | |
[40.620 ns ; 41.730 ns) | @@@@@ | |
[41.730 ns ; 44.009 ns) | @@@@ | |
--------------------------------------------------- | |
Algorithms.WithLookupTable: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 126.5881 ns, StdErr = 0.7486 ns (0.59%); N = 58, StdDev = 5.7014 ns | |
Min = 116.4769 ns, Q1 = 120.1448 ns, Median = 128.5708 ns, Q3 = 130.7649 ns, Max = 135.9574 ns | |
IQR = 10.6201 ns, LowerFence = 104.2146 ns, UpperFence = 146.6951 ns | |
ConfidenceInterval = [123.9907 ns; 129.1855 ns] (CI 99.9%), Margin = 2.5974 ns (2.05% of Mean) | |
Skewness = -0.3, Kurtosis = 1.76, MValue = 2.96 | |
-------------------- Histogram -------------------- | |
[115.188 ns ; 117.789 ns) | @@@@ | |
[117.789 ns ; 120.367 ns) | @@@@@@@@@@@ | |
[120.367 ns ; 123.137 ns) | @@ | |
[123.137 ns ; 125.715 ns) | @@@@@@@ | |
[125.715 ns ; 128.585 ns) | @@@@@ | |
[128.585 ns ; 133.429 ns) | @@@@@@@@@@@@@@@@@@@@@@@ | |
[133.429 ns ; 136.404 ns) | @@@@@@ | |
--------------------------------------------------- | |
Algorithms.WithLookupArray: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 34.5252 ns, StdErr = 0.2197 ns (0.64%); N = 50, StdDev = 1.5536 ns | |
Min = 32.5697 ns, Q1 = 32.9874 ns, Median = 34.5621 ns, Q3 = 35.6911 ns, Max = 37.8929 ns | |
IQR = 2.7036 ns, LowerFence = 28.9319 ns, UpperFence = 39.7465 ns | |
ConfidenceInterval = [33.7561 ns; 35.2943 ns] (CI 99.9%), Margin = 0.7691 ns (2.23% of Mean) | |
Skewness = 0.33, Kurtosis = 1.9, MValue = 2.56 | |
-------------------- Histogram -------------------- | |
[32.539 ns ; 33.277 ns) | @@@@@@@@@@@@@@@@@@ | |
[33.277 ns ; 34.156 ns) | @@@@ | |
[34.156 ns ; 34.989 ns) | @@@@@@@ | |
[34.989 ns ; 35.727 ns) | @@@@@@@@@ | |
[35.727 ns ; 36.629 ns) | @@@@@@@@@ | |
[36.629 ns ; 37.948 ns) | @@@ | |
--------------------------------------------------- | |
Algorithms.WithDoubleLookupArray: DefaultJob [ByteArrayInput=Array[8]] | |
Runtime = .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT; GC = Concurrent Workstation | |
Mean = 34.9113 ns, StdErr = 0.2249 ns (0.64%); N = 50, StdDev = 1.5905 ns | |
Min = 33.1809 ns, Q1 = 33.4180 ns, Median = 34.4918 ns, Q3 = 36.2587 ns, Max = 38.6034 ns | |
IQR = 2.8407 ns, LowerFence = 29.1569 ns, UpperFence = 40.5198 ns | |
ConfidenceInterval = [34.1239 ns; 35.6986 ns] (CI 99.9%), Margin = 0.7874 ns (2.26% of Mean) | |
Skewness = 0.58, Kurtosis = 2.07, MValue = 2.67 | |
-------------------- Histogram -------------------- | |
[33.098 ns ; 33.853 ns) | @@@@@@@@@@@@@@@@@@@@@ | |
[33.853 ns ; 34.648 ns) | @@@@@ | |
[34.648 ns ; 35.523 ns) | @@@@@@@ | |
[35.523 ns ; 36.880 ns) | @@@@@@@@@@@@ | |
[36.880 ns ; 37.712 ns) | @@@ | |
[37.712 ns ; 38.981 ns) | @@ | |
--------------------------------------------------- | |
// * Summary * | |
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18363 | |
Intel Core i7-5820K CPU 3.30GHz (Broadwell), 1 CPU, 12 logical and 6 physical cores | |
.NET Core SDK=3.0.100 | |
[Host] : .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
DefaultJob : .NET Core 3.0.0 (CoreCLR 4.700.19.46205, CoreFX 4.700.19.46214), X64 RyuJIT | |
| Method | ByteArrayInput | Mean | Error | StdDev | Median | | |
|------------------------ |--------------- |----------:|----------:|----------:|----------:| | |
| WithStringJoin | Array[8] | 507.21 ns | 10.152 ns | 22.070 ns | 512.49 ns | | |
| WithStringBuilder | Array[8] | 337.10 ns | 7.336 ns | 14.135 ns | 338.94 ns | | |
| WithStringBuilderForInt | Array[8] | 325.38 ns | 6.586 ns | 12.370 ns | 320.17 ns | | |
| WithBitConverter | Array[8] | 213.56 ns | 4.259 ns | 7.115 ns | 214.72 ns | | |
| WithCharArray | Array[8] | 42.88 ns | 0.933 ns | 1.559 ns | 43.15 ns | | |
| WithBitShifts | Array[8] | 39.05 ns | 0.865 ns | 1.843 ns | 39.33 ns | | |
| WithLookupTable | Array[8] | 126.59 ns | 2.597 ns | 5.701 ns | 128.57 ns | | |
| WithLookupArray | Array[8] | 34.53 ns | 0.769 ns | 1.554 ns | 34.56 ns | | |
| WithDoubleLookupArray | Array[8] | 34.91 ns | 0.787 ns | 1.590 ns | 34.49 ns | | |
// * Warnings * | |
MultimodalDistribution | |
Algorithms.WithStringJoin: Default -> It seems that the distribution can have several modes (mValue = 2.86) | |
Algorithms.WithStringBuilderForInt: Default -> It seems that the distribution is bimodal (mValue = 3.48) | |
Algorithms.WithCharArray: Default -> It seems that the distribution is bimodal (mValue = 3.45) | |
Algorithms.WithLookupTable: Default -> It seems that the distribution can have several modes (mValue = 2.96) | |
// * Hints * | |
Outliers | |
Algorithms.WithStringBuilder: Default -> 1 outlier was removed (385.94 ns) | |
Algorithms.WithBitConverter: Default -> 1 outlier was removed (411.55 ns) | |
// * Legends * | |
ByteArrayInput : Value of the 'ByteArrayInput' 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) | |
1 ns : 1 Nanosecond (0.000000001 sec) | |
// ***** BenchmarkRunner: End ***** | |
// ** Remained 0 benchmark(s) to run ** | |
Run time: 00:06:09 (369.66 sec), executed benchmarks: 9 | |
Global total time: 00:06:14 (374.45 sec), executed benchmarks: 9 | |
// * 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.Running; | |
namespace HexBenchmark | |
{ | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
BenchmarkRunner.Run<Algorithms>(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment