mirror of
https://github.com/Smaug123/AdventOfCode2022
synced 2025-10-10 03:58:41 +00:00
Bones of Day 13, and 6% speedup to day 12 (#21)
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
<EmbeddedResource Include="..\AdventOfCode2022.Test\Inputs\Day10.txt" />
|
||||
<EmbeddedResource Include="..\AdventOfCode2022.Test\Inputs\Day11.txt" />
|
||||
<EmbeddedResource Include="..\AdventOfCode2022.Test\Inputs\Day12.txt" />
|
||||
<EmbeddedResource Include="..\AdventOfCode2022.Test\Inputs\Day13.txt" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@@ -2,5 +2,5 @@ namespace AdventOfCode2022.App
|
||||
|
||||
[<RequireQualifiedAccess>]
|
||||
module Inputs =
|
||||
let days = Array.init 12 (fun day -> Assembly.readResource $"Day%i{day + 1}.txt")
|
||||
let days = Array.init 13 (fun day -> Assembly.readResource $"Day%i{day + 1}.txt")
|
||||
let inline day (i : int) = days.[i - 1]
|
||||
|
@@ -12,7 +12,7 @@ type Benchmarks () =
|
||||
[<GlobalSetup>]
|
||||
member _.Setup () = Run.shouldWrite <- false
|
||||
|
||||
[<Params(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)>]
|
||||
[<Params(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)>]
|
||||
member val Day = 0 with get, set
|
||||
|
||||
[<Params(false, true)>]
|
||||
@@ -36,7 +36,7 @@ module Program =
|
||||
.Create(DefaultConfig.Instance)
|
||||
.WithOptions ConfigOptions.DisableOptimizationsValidator
|
||||
|
||||
let summary = BenchmarkRunner.Run<Benchmarks> config
|
||||
let _summary = BenchmarkRunner.Run<Benchmarks> config
|
||||
0
|
||||
| _ ->
|
||||
|
||||
|
@@ -173,6 +173,21 @@ module Run =
|
||||
if shouldWrite then
|
||||
printfn "%i" output
|
||||
|
||||
|
||||
let day13 (partTwo : bool) (input : string) =
|
||||
let day13 = StringSplitEnumerator.make '\n' input
|
||||
|
||||
if not partTwo then
|
||||
let output = Day13.part1 day13
|
||||
|
||||
if shouldWrite then
|
||||
printfn "%i" output
|
||||
else
|
||||
let output = Day13.part2 day13
|
||||
|
||||
if shouldWrite then
|
||||
printfn "%i" output
|
||||
|
||||
let allRuns =
|
||||
[|
|
||||
day1
|
||||
@@ -187,4 +202,5 @@ module Run =
|
||||
day10
|
||||
day11
|
||||
day12
|
||||
day13
|
||||
|]
|
||||
|
@@ -20,6 +20,7 @@
|
||||
<Compile Include="Day10.fs" />
|
||||
<Compile Include="Day11.fs" />
|
||||
<Compile Include="Day12.fs" />
|
||||
<None Include="Day13.fs" />
|
||||
<EmbeddedResource Include="Inputs\Day1.txt" />
|
||||
<EmbeddedResource Include="Inputs\Day2.txt" />
|
||||
<EmbeddedResource Include="Inputs\Day3.txt" />
|
||||
@@ -32,6 +33,7 @@
|
||||
<EmbeddedResource Include="Inputs\Day10.txt" />
|
||||
<EmbeddedResource Include="Inputs\Day11.txt" />
|
||||
<EmbeddedResource Include="Inputs\Day12.txt" />
|
||||
<EmbeddedResource Include="Inputs\Day13.txt" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
32
AdventOfCode2022.Test/Day13.fs
Normal file
32
AdventOfCode2022.Test/Day13.fs
Normal file
@@ -0,0 +1,32 @@
|
||||
namespace AdventOfCode2022.Test
|
||||
|
||||
open NUnit.Framework
|
||||
open FsUnitTyped
|
||||
open AdventOfCode2022
|
||||
|
||||
[<TestFixture>]
|
||||
module TestDay13 =
|
||||
|
||||
let input =
|
||||
"""
|
||||
"""
|
||||
|
||||
[<Test>]
|
||||
let ``Part 1, given`` () =
|
||||
Day13.part1 (StringSplitEnumerator.make '\n' input) |> shouldEqual 31
|
||||
|
||||
[<Test>]
|
||||
let ``Part 1`` () =
|
||||
let input = Assembly.readResource "Day13.txt"
|
||||
|
||||
Day13.part1 (StringSplitEnumerator.make '\n' input) |> shouldEqual 456
|
||||
|
||||
|
||||
[<Test>]
|
||||
let ``Part 2, given`` () =
|
||||
Day13.part2 (StringSplitEnumerator.make '\n' input) |> shouldEqual 29
|
||||
|
||||
[<Test>]
|
||||
let ``Part 2`` () =
|
||||
let input = Assembly.readResource "Day13.txt"
|
||||
Day13.part2 (StringSplitEnumerator.make '\n' input) |> shouldEqual 454
|
0
AdventOfCode2022.Test/Inputs/Day13.txt
Normal file
0
AdventOfCode2022.Test/Inputs/Day13.txt
Normal file
@@ -22,6 +22,7 @@
|
||||
<Compile Include="Day10.fs" />
|
||||
<Compile Include="Day11.fs" />
|
||||
<Compile Include="Day12.fs" />
|
||||
<Compile Include="Day13.fs" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@@ -1,39 +1,92 @@
|
||||
namespace AdventOfCode2022
|
||||
|
||||
#if DEBUG
|
||||
#else
|
||||
#nowarn "9"
|
||||
#endif
|
||||
|
||||
open Microsoft.FSharp.NativeInterop
|
||||
|
||||
[<Struct>]
|
||||
#if DEBUG
|
||||
type Arr2D<'a> =
|
||||
{
|
||||
Elements : 'a[]
|
||||
Elements : 'a array
|
||||
Width : int
|
||||
Height : int
|
||||
}
|
||||
|
||||
member this.Height = this.Elements.Length / this.Width
|
||||
#else
|
||||
type Arr2D<'a when 'a : unmanaged> =
|
||||
{
|
||||
Elements : nativeptr<'a>
|
||||
Length : int
|
||||
Width : int
|
||||
}
|
||||
|
||||
member this.Height = this.Length / this.Width
|
||||
#endif
|
||||
|
||||
[<RequireQualifiedAccess>]
|
||||
module Arr2D =
|
||||
|
||||
/// It's faster to iterate forward over the first argument, `x`.
|
||||
let inline get (arr : Arr2D<'a>) (x : int) (y : int) : 'a = arr.Elements.[y * arr.Width + x]
|
||||
let inline get (arr : Arr2D<'a>) (x : int) (y : int) : 'a =
|
||||
#if DEBUG
|
||||
arr.Elements.[y * arr.Width + x]
|
||||
#else
|
||||
NativePtr.get arr.Elements (y * arr.Width + x)
|
||||
#endif
|
||||
|
||||
let inline set (arr : Arr2D<'a>) (x : int) (y : int) (newVal : 'a) : unit =
|
||||
#if DEBUG
|
||||
arr.Elements.[y * arr.Width + x] <- newVal
|
||||
#else
|
||||
NativePtr.write (NativePtr.add arr.Elements (y * arr.Width + x)) newVal
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
let create (width : int) (height : int) (value : 'a) : Arr2D<'a> =
|
||||
let arr = Array.create (width * height) value
|
||||
|
||||
let create<'a> (width : int) (height : int) (value : 'a) : Arr2D<'a> =
|
||||
{
|
||||
Elements = Array.create (width * height) value
|
||||
Width = width
|
||||
Height = height
|
||||
Elements = arr
|
||||
}
|
||||
#else
|
||||
/// The input array must be at least of size width * height
|
||||
let create (arr : nativeptr<'a>) (width : int) (height : int) (value : 'a) : Arr2D<'a> =
|
||||
{
|
||||
Width = width
|
||||
Elements = arr
|
||||
Length = width * height
|
||||
}
|
||||
#endif
|
||||
|
||||
[<RequiresExplicitTypeArguments>]
|
||||
let zeroCreate<'a> (width : int) (height : int) : Arr2D<'a> =
|
||||
#if DEBUG
|
||||
let zeroCreate<'a when 'a : unmanaged> (width : int) (height : int) : Arr2D<'a> =
|
||||
{
|
||||
Elements = Array.zeroCreate (width * height)
|
||||
Width = width
|
||||
Height = height
|
||||
}
|
||||
#else
|
||||
let zeroCreate<'a when 'a : unmanaged> (elts : nativeptr<'a>) (width : int) (height : int) : Arr2D<'a> =
|
||||
{
|
||||
Elements = elts
|
||||
Width = width
|
||||
Length = width * height
|
||||
}
|
||||
#endif
|
||||
|
||||
/// The closure is given x and then y.
|
||||
let inline init<'a> (width : int) (height : int) (f : int -> int -> 'a) : Arr2D<'a> =
|
||||
#if DEBUG
|
||||
let inline init (width : int) (height : int) (f : int -> int -> 'a) : Arr2D<'a> =
|
||||
let result = zeroCreate<'a> width height
|
||||
#else
|
||||
let inline init (arr : nativeptr<'a>) (width : int) (height : int) (f : int -> int -> 'a) : Arr2D<'a> =
|
||||
let result = zeroCreate<'a> arr width height
|
||||
#endif
|
||||
|
||||
for y in 0 .. height - 1 do
|
||||
for x in 0 .. width - 1 do
|
||||
@@ -41,6 +94,9 @@ module Arr2D =
|
||||
|
||||
result
|
||||
|
||||
let inline clear (a : Arr2D<'a>) : unit = System.Array.Clear a.Elements
|
||||
|
||||
let inline setAll (a : Arr2D<'a>) (v : 'a) : unit = System.Array.Fill (a.Elements, v)
|
||||
let inline clear (a : Arr2D<'a>) : unit =
|
||||
#if DEBUG
|
||||
System.Array.Clear a.Elements
|
||||
#else
|
||||
NativePtr.initBlock a.Elements 0uy (uint32 sizeof<'a> * uint32 a.Length)
|
||||
#endif
|
||||
|
@@ -6,6 +6,11 @@ open System
|
||||
open Checked
|
||||
#endif
|
||||
|
||||
#if DEBUG
|
||||
#else
|
||||
#nowarn "9"
|
||||
#endif
|
||||
|
||||
[<RequireQualifiedAccess>]
|
||||
module Day12 =
|
||||
|
||||
@@ -18,7 +23,7 @@ module Day12 =
|
||||
Y : int
|
||||
}
|
||||
|
||||
let parse (lines : StringSplitEnumerator) : Arr2D<byte> * Coordinate * Coordinate =
|
||||
let parse (lines : StringSplitEnumerator) : array<byte> * int * Coordinate * Coordinate =
|
||||
use mutable enum = lines
|
||||
let output = ResizeArray ()
|
||||
let mutable startPos = Unchecked.defaultof<Coordinate>
|
||||
@@ -53,8 +58,13 @@ module Day12 =
|
||||
arr |> output.Add
|
||||
row <- row + 1
|
||||
|
||||
let output = Arr2D.init output.[0].Length output.Count (fun x y -> output.[y].[x])
|
||||
output, startPos, endPos
|
||||
let arr = Array.zeroCreate<byte> (output.Count * output.[0].Length)
|
||||
|
||||
for x in 0 .. output.[0].Length - 1 do
|
||||
for y in 0 .. output.Count - 1 do
|
||||
arr.[y * output.[0].Length + x] <- output.[y].[x]
|
||||
|
||||
arr, output.[0].Length, startPos, endPos
|
||||
|
||||
let inline isEdge (nodes : Arr2D< ^a >) sourceX sourceY destX destY =
|
||||
Arr2D.get nodes sourceX sourceY
|
||||
@@ -78,8 +88,9 @@ module Day12 =
|
||||
let mutable currentDistance = 0
|
||||
|
||||
Arr2D.clear isVisited
|
||||
Arr2D.setAll distances Int32.MaxValue
|
||||
Arr2D.set distances start.X start.Y 0
|
||||
// A distance of 0 is interpreted as infinite.
|
||||
Arr2D.clear distances
|
||||
|
||||
let mutable stillGoing = true
|
||||
|
||||
while stillGoing && currentDistance < Int32.MaxValue do
|
||||
@@ -90,7 +101,9 @@ module Day12 =
|
||||
then
|
||||
let newDistance = 1 + currentDistance
|
||||
|
||||
if newDistance < Arr2D.get distances (currentX + 1) currentY then
|
||||
let distanceGuess = Arr2D.get distances (currentX + 1) currentY
|
||||
|
||||
if distanceGuess = 0 || newDistance < distanceGuess then
|
||||
Arr2D.set distances (currentX + 1) currentY newDistance
|
||||
|
||||
if currentX > 0 then
|
||||
@@ -100,7 +113,9 @@ module Day12 =
|
||||
then
|
||||
let newDistance = 1 + currentDistance
|
||||
|
||||
if newDistance < Arr2D.get distances (currentX - 1) currentY then
|
||||
let distanceGuess = Arr2D.get distances (currentX - 1) currentY
|
||||
|
||||
if distanceGuess = 0 || newDistance < distanceGuess then
|
||||
Arr2D.set distances (currentX - 1) currentY newDistance
|
||||
|
||||
if currentY > 0 then
|
||||
@@ -110,7 +125,9 @@ module Day12 =
|
||||
then
|
||||
let newDistance = 1 + currentDistance
|
||||
|
||||
if newDistance < Arr2D.get distances currentX (currentY - 1) then
|
||||
let distanceGuess = Arr2D.get distances currentX (currentY - 1)
|
||||
|
||||
if distanceGuess = 0 || newDistance < distanceGuess then
|
||||
Arr2D.set distances currentX (currentY - 1) newDistance
|
||||
|
||||
if currentY < distances.Height - 1 then
|
||||
@@ -120,7 +137,9 @@ module Day12 =
|
||||
then
|
||||
let newDistance = 1 + currentDistance
|
||||
|
||||
if newDistance < Arr2D.get distances currentX (currentY + 1) then
|
||||
let distanceGuess = Arr2D.get distances currentX (currentY + 1)
|
||||
|
||||
if distanceGuess = 0 || newDistance < distanceGuess then
|
||||
Arr2D.set distances currentX (currentY + 1) newDistance
|
||||
|
||||
Arr2D.set isVisited currentX currentY true
|
||||
@@ -132,40 +151,91 @@ module Day12 =
|
||||
|
||||
for nextX in 0 .. isVisited.Width - 1 do
|
||||
for nextY in 0 .. isVisited.Height - 1 do
|
||||
if
|
||||
not (Arr2D.get isVisited nextX nextY)
|
||||
&& Arr2D.get distances nextX nextY <= smallestDistance
|
||||
then
|
||||
if not (Arr2D.get isVisited nextX nextY) then
|
||||
let distance = Arr2D.get distances nextX nextY
|
||||
|
||||
if distance > 0 && distance <= smallestDistance then
|
||||
currentX <- nextX
|
||||
currentY <- nextY
|
||||
smallestDistance <- Arr2D.get distances nextX nextY
|
||||
smallestDistance <- distance
|
||||
|
||||
currentDistance <- smallestDistance
|
||||
|
||||
let output = ResizeArray ()
|
||||
|
||||
match dest with
|
||||
| Some dest -> Arr2D.get distances dest.X dest.Y
|
||||
| None ->
|
||||
|
||||
let mutable minValue = Int32.MaxValue
|
||||
|
||||
for y in 0 .. nodes.Height - 1 do
|
||||
for x in 0 .. nodes.Width - 1 do
|
||||
if Arr2D.get nodes x y = 0uy then
|
||||
minValue <- min minValue (Arr2D.get distances x y)
|
||||
let distance = Arr2D.get distances x y
|
||||
|
||||
if distance <> 0 then
|
||||
minValue <- min minValue distance
|
||||
|
||||
minValue
|
||||
|
||||
let part1 (lines : StringSplitEnumerator) : int =
|
||||
let data, start, endPoint = parse lines
|
||||
let data, width, start, endPoint = parse lines
|
||||
#if DEBUG
|
||||
let data =
|
||||
{
|
||||
Width = width
|
||||
Elements = data
|
||||
}
|
||||
|
||||
let distances = Arr2D.create data.Width data.Height Int32.MaxValue
|
||||
let isVisited = Arr2D.zeroCreate<bool> data.Width data.Height
|
||||
|
||||
#else
|
||||
use ptr = fixed data
|
||||
|
||||
let data =
|
||||
{
|
||||
Width = width
|
||||
Elements = ptr
|
||||
Length = data.Length
|
||||
}
|
||||
|
||||
let distanceArr = Array.zeroCreate (data.Width * data.Height)
|
||||
use ptr = fixed distanceArr
|
||||
let distances = Arr2D.zeroCreate<int> ptr data.Width data.Height
|
||||
let visitedArr = Array.zeroCreate (data.Width * data.Height)
|
||||
use ptr = fixed visitedArr
|
||||
let isVisited = Arr2D.zeroCreate<bool> ptr data.Width data.Height
|
||||
#endif
|
||||
|
||||
dijkstra distances isVisited data endPoint (Some start)
|
||||
|
||||
let part2 (lines : StringSplitEnumerator) : int =
|
||||
let data, _, endPoint = parse lines
|
||||
let data, width, _, endPoint = parse lines
|
||||
#if DEBUG
|
||||
let data =
|
||||
{
|
||||
Width = width
|
||||
Elements = data
|
||||
}
|
||||
|
||||
let distances = Arr2D.zeroCreate<int32> data.Width data.Height
|
||||
let isVisited = Arr2D.zeroCreate<bool> data.Width data.Height
|
||||
#else
|
||||
use ptr = fixed data
|
||||
|
||||
let data =
|
||||
{
|
||||
Width = width
|
||||
Elements = ptr
|
||||
Length = data.Length
|
||||
}
|
||||
|
||||
let distanceArr = Array.zeroCreate (data.Width * data.Height)
|
||||
use ptr = fixed distanceArr
|
||||
let distances = Arr2D.zeroCreate<int32> ptr data.Width data.Height
|
||||
let visitedArr = Array.zeroCreate (data.Width * data.Height)
|
||||
use ptr = fixed visitedArr
|
||||
let isVisited = Arr2D.zeroCreate<bool> ptr data.Width data.Height
|
||||
#endif
|
||||
|
||||
dijkstra distances isVisited data endPoint None
|
||||
|
27
AdventOfCode2022/Day13.fs
Normal file
27
AdventOfCode2022/Day13.fs
Normal file
@@ -0,0 +1,27 @@
|
||||
namespace AdventOfCode2022
|
||||
|
||||
open System
|
||||
|
||||
#if DEBUG
|
||||
open Checked
|
||||
#endif
|
||||
|
||||
[<RequireQualifiedAccess>]
|
||||
module Day13 =
|
||||
|
||||
let parse (lines : StringSplitEnumerator) : int =
|
||||
use mutable enum = lines
|
||||
let output = ResizeArray ()
|
||||
|
||||
while enum.MoveNext () do
|
||||
output.Add ()
|
||||
|
||||
0
|
||||
|
||||
let part1 (lines : StringSplitEnumerator) : int =
|
||||
let data = parse lines
|
||||
-1
|
||||
|
||||
let part2 (lines : StringSplitEnumerator) : int =
|
||||
let data = parse lines
|
||||
-1
|
@@ -9,28 +9,28 @@ Apple M1 Max, 1 CPU, 10 logical and 10 physical cores
|
||||
|
||||
```
|
||||
| Method | Day | IsPartOne | Mean | Error | StdDev |
|
||||
|---------- |---- |---------- |--------------:|------------:|------------:|
|
||||
| **Benchmark** | **1** | **False** | **32.141 μs** | **0.2322 μs** | **0.2058 μs** |
|
||||
| **Benchmark** | **1** | **True** | **32.234 μs** | **0.1053 μs** | **0.0879 μs** |
|
||||
| **Benchmark** | **2** | **False** | **81.493 μs** | **0.4374 μs** | **0.3878 μs** |
|
||||
| **Benchmark** | **2** | **True** | **80.254 μs** | **0.3678 μs** | **0.3441 μs** |
|
||||
| **Benchmark** | **3** | **False** | **32.799 μs** | **0.6158 μs** | **0.6845 μs** |
|
||||
| **Benchmark** | **3** | **True** | **67.518 μs** | **0.4719 μs** | **0.4415 μs** |
|
||||
| **Benchmark** | **4** | **False** | **67.787 μs** | **0.7091 μs** | **0.6633 μs** |
|
||||
| **Benchmark** | **4** | **True** | **54.713 μs** | **0.4908 μs** | **0.4098 μs** |
|
||||
| **Benchmark** | **5** | **False** | **92.630 μs** | **0.6449 μs** | **0.6032 μs** |
|
||||
| **Benchmark** | **5** | **True** | **80.029 μs** | **0.7128 μs** | **0.6667 μs** |
|
||||
| **Benchmark** | **6** | **False** | **87.383 μs** | **1.5401 μs** | **1.3653 μs** |
|
||||
| **Benchmark** | **6** | **True** | **168.588 μs** | **1.6324 μs** | **1.5269 μs** |
|
||||
| **Benchmark** | **7** | **False** | **455.791 μs** | **4.1958 μs** | **3.7195 μs** |
|
||||
| **Benchmark** | **7** | **True** | **470.090 μs** | **8.8935 μs** | **9.8851 μs** |
|
||||
| **Benchmark** | **8** | **False** | **770.817 μs** | **9.3998 μs** | **8.7926 μs** |
|
||||
| **Benchmark** | **8** | **True** | **371.655 μs** | **5.7277 μs** | **4.7829 μs** |
|
||||
| **Benchmark** | **9** | **False** | **507.394 μs** | **8.8597 μs** | **9.0983 μs** |
|
||||
| **Benchmark** | **9** | **True** | **933.275 μs** | **6.8702 μs** | **5.7369 μs** |
|
||||
| **Benchmark** | **10** | **False** | **7.589 μs** | **0.1097 μs** | **0.1026 μs** |
|
||||
| **Benchmark** | **10** | **True** | **8.606 μs** | **0.0672 μs** | **0.0629 μs** |
|
||||
| **Benchmark** | **11** | **False** | **7.400 μs** | **0.0986 μs** | **0.0923 μs** |
|
||||
| **Benchmark** | **11** | **True** | **2,908.736 μs** | **25.5263 μs** | **21.3156 μs** |
|
||||
| **Benchmark** | **12** | **False** | **21,693.302 μs** | **166.2399 μs** | **155.5009 μs** |
|
||||
| **Benchmark** | **12** | **True** | **23,433.128 μs** | **51.6383 μs** | **43.1203 μs** |
|
||||
|---------- |---- |---------- |--------------:|-----------:|-----------:|
|
||||
| **Benchmark** | **1** | **False** | **33.244 μs** | **0.2642 μs** | **0.2471 μs** |
|
||||
| **Benchmark** | **1** | **True** | **32.513 μs** | **0.1846 μs** | **0.1726 μs** |
|
||||
| **Benchmark** | **2** | **False** | **81.554 μs** | **0.2173 μs** | **0.1815 μs** |
|
||||
| **Benchmark** | **2** | **True** | **79.599 μs** | **0.1147 μs** | **0.1073 μs** |
|
||||
| **Benchmark** | **3** | **False** | **31.007 μs** | **0.5214 μs** | **0.4877 μs** |
|
||||
| **Benchmark** | **3** | **True** | **68.288 μs** | **0.7579 μs** | **0.7089 μs** |
|
||||
| **Benchmark** | **4** | **False** | **67.351 μs** | **0.3972 μs** | **0.3521 μs** |
|
||||
| **Benchmark** | **4** | **True** | **55.999 μs** | **0.1689 μs** | **0.1580 μs** |
|
||||
| **Benchmark** | **5** | **False** | **92.782 μs** | **1.0320 μs** | **0.9654 μs** |
|
||||
| **Benchmark** | **5** | **True** | **79.805 μs** | **0.6187 μs** | **0.5167 μs** |
|
||||
| **Benchmark** | **6** | **False** | **84.490 μs** | **0.2784 μs** | **0.2468 μs** |
|
||||
| **Benchmark** | **6** | **True** | **166.730 μs** | **0.5719 μs** | **0.5350 μs** |
|
||||
| **Benchmark** | **7** | **False** | **453.619 μs** | **2.1378 μs** | **1.9997 μs** |
|
||||
| **Benchmark** | **7** | **True** | **452.451 μs** | **1.4309 μs** | **1.3385 μs** |
|
||||
| **Benchmark** | **8** | **False** | **755.448 μs** | **0.7892 μs** | **0.7382 μs** |
|
||||
| **Benchmark** | **8** | **True** | **375.527 μs** | **3.0205 μs** | **2.5223 μs** |
|
||||
| **Benchmark** | **9** | **False** | **501.875 μs** | **2.1927 μs** | **1.9438 μs** |
|
||||
| **Benchmark** | **9** | **True** | **933.000 μs** | **9.1963 μs** | **8.6022 μs** |
|
||||
| **Benchmark** | **10** | **False** | **7.636 μs** | **0.0413 μs** | **0.0386 μs** |
|
||||
| **Benchmark** | **10** | **True** | **8.521 μs** | **0.0276 μs** | **0.0258 μs** |
|
||||
| **Benchmark** | **11** | **False** | **7.342 μs** | **0.0088 μs** | **0.0083 μs** |
|
||||
| **Benchmark** | **11** | **True** | **2,892.387 μs** | **4.6952 μs** | **4.3919 μs** |
|
||||
| **Benchmark** | **12** | **False** | **18,577.038 μs** | **65.5871 μs** | **51.2061 μs** |
|
||||
| **Benchmark** | **12** | **True** | **20,108.906 μs** | **54.5080 μs** | **48.3199 μs** |
|
||||
|
@@ -1,25 +1,25 @@
|
||||
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Day,IsPartOne,Mean,Error,StdDev
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,False,32.141 μs,0.2322 μs,0.2058 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,True,32.234 μs,0.1053 μs,0.0879 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,False,81.493 μs,0.4374 μs,0.3878 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,True,80.254 μs,0.3678 μs,0.3441 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,False,32.799 μs,0.6158 μs,0.6845 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,True,67.518 μs,0.4719 μs,0.4415 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,False,67.787 μs,0.7091 μs,0.6633 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,True,54.713 μs,0.4908 μs,0.4098 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,False,92.630 μs,0.6449 μs,0.6032 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,True,80.029 μs,0.7128 μs,0.6667 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,False,87.383 μs,1.5401 μs,1.3653 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,True,168.588 μs,1.6324 μs,1.5269 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,False,455.791 μs,4.1958 μs,3.7195 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,True,470.090 μs,8.8935 μs,9.8851 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,False,770.817 μs,9.3998 μs,8.7926 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,True,371.655 μs,5.7277 μs,4.7829 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,False,507.394 μs,8.8597 μs,9.0983 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,True,933.275 μs,6.8702 μs,5.7369 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,False,7.589 μs,0.1097 μs,0.1026 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,True,8.606 μs,0.0672 μs,0.0629 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,False,7.400 μs,0.0986 μs,0.0923 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,True,"2,908.736 μs",25.5263 μs,21.3156 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,False,"21,693.302 μs",166.2399 μs,155.5009 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,True,"23,433.128 μs",51.6383 μs,43.1203 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,False,33.244 μs,0.2642 μs,0.2471 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1,True,32.513 μs,0.1846 μs,0.1726 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,False,81.554 μs,0.2173 μs,0.1815 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,2,True,79.599 μs,0.1147 μs,0.1073 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,False,31.007 μs,0.5214 μs,0.4877 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,3,True,68.288 μs,0.7579 μs,0.7089 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,False,67.351 μs,0.3972 μs,0.3521 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,4,True,55.999 μs,0.1689 μs,0.1580 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,False,92.782 μs,1.0320 μs,0.9654 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,5,True,79.805 μs,0.6187 μs,0.5167 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,False,84.490 μs,0.2784 μs,0.2468 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,6,True,166.730 μs,0.5719 μs,0.5350 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,False,453.619 μs,2.1378 μs,1.9997 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,7,True,452.451 μs,1.4309 μs,1.3385 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,False,755.448 μs,0.7892 μs,0.7382 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,8,True,375.527 μs,3.0205 μs,2.5223 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,False,501.875 μs,2.1927 μs,1.9438 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9,True,933.000 μs,9.1963 μs,8.6022 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,False,7.636 μs,0.0413 μs,0.0386 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,10,True,8.521 μs,0.0276 μs,0.0258 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,False,7.342 μs,0.0088 μs,0.0083 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,11,True,"2,892.387 μs",4.6952 μs,4.3919 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,False,"18,577.038 μs",65.5871 μs,51.2061 μs
|
||||
Benchmark,DefaultJob,False,Default,Default,Default,Default,Default,Default,0000000000,Empty,RyuJit,Arm64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 7.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,12,True,"20,108.906 μs",54.5080 μs,48.3199 μs
|
||||
|
|
@@ -2,7 +2,7 @@
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<meta charset='utf-8' />
|
||||
<title>AdventOfCode2022.App.Benchmarks-20221212-143434</title>
|
||||
<title>AdventOfCode2022.App.Benchmarks-20221212-171935</title>
|
||||
|
||||
<style type="text/css">
|
||||
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
|
||||
@@ -24,30 +24,30 @@ Apple M1 Max, 1 CPU, 10 logical and 10 physical cores
|
||||
<table>
|
||||
<thead><tr><th>Method</th><th>Day</th><th>IsPartOne</th><th> Mean</th><th>Error</th><th>StdDev</th>
|
||||
</tr>
|
||||
</thead><tbody><tr><td>Benchmark</td><td>1</td><td>False</td><td>32.141 μs</td><td>0.2322 μs</td><td>0.2058 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>1</td><td>True</td><td>32.234 μs</td><td>0.1053 μs</td><td>0.0879 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>2</td><td>False</td><td>81.493 μs</td><td>0.4374 μs</td><td>0.3878 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>2</td><td>True</td><td>80.254 μs</td><td>0.3678 μs</td><td>0.3441 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>3</td><td>False</td><td>32.799 μs</td><td>0.6158 μs</td><td>0.6845 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>3</td><td>True</td><td>67.518 μs</td><td>0.4719 μs</td><td>0.4415 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>4</td><td>False</td><td>67.787 μs</td><td>0.7091 μs</td><td>0.6633 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>4</td><td>True</td><td>54.713 μs</td><td>0.4908 μs</td><td>0.4098 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>5</td><td>False</td><td>92.630 μs</td><td>0.6449 μs</td><td>0.6032 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>5</td><td>True</td><td>80.029 μs</td><td>0.7128 μs</td><td>0.6667 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>6</td><td>False</td><td>87.383 μs</td><td>1.5401 μs</td><td>1.3653 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>6</td><td>True</td><td>168.588 μs</td><td>1.6324 μs</td><td>1.5269 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>7</td><td>False</td><td>455.791 μs</td><td>4.1958 μs</td><td>3.7195 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>7</td><td>True</td><td>470.090 μs</td><td>8.8935 μs</td><td>9.8851 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>8</td><td>False</td><td>770.817 μs</td><td>9.3998 μs</td><td>8.7926 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>8</td><td>True</td><td>371.655 μs</td><td>5.7277 μs</td><td>4.7829 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>9</td><td>False</td><td>507.394 μs</td><td>8.8597 μs</td><td>9.0983 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>9</td><td>True</td><td>933.275 μs</td><td>6.8702 μs</td><td>5.7369 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>10</td><td>False</td><td>7.589 μs</td><td>0.1097 μs</td><td>0.1026 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>10</td><td>True</td><td>8.606 μs</td><td>0.0672 μs</td><td>0.0629 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>11</td><td>False</td><td>7.400 μs</td><td>0.0986 μs</td><td>0.0923 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>11</td><td>True</td><td>2,908.736 μs</td><td>25.5263 μs</td><td>21.3156 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>12</td><td>False</td><td>21,693.302 μs</td><td>166.2399 μs</td><td>155.5009 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>12</td><td>True</td><td>23,433.128 μs</td><td>51.6383 μs</td><td>43.1203 μs</td>
|
||||
</thead><tbody><tr><td>Benchmark</td><td>1</td><td>False</td><td>33.244 μs</td><td>0.2642 μs</td><td>0.2471 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>1</td><td>True</td><td>32.513 μs</td><td>0.1846 μs</td><td>0.1726 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>2</td><td>False</td><td>81.554 μs</td><td>0.2173 μs</td><td>0.1815 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>2</td><td>True</td><td>79.599 μs</td><td>0.1147 μs</td><td>0.1073 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>3</td><td>False</td><td>31.007 μs</td><td>0.5214 μs</td><td>0.4877 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>3</td><td>True</td><td>68.288 μs</td><td>0.7579 μs</td><td>0.7089 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>4</td><td>False</td><td>67.351 μs</td><td>0.3972 μs</td><td>0.3521 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>4</td><td>True</td><td>55.999 μs</td><td>0.1689 μs</td><td>0.1580 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>5</td><td>False</td><td>92.782 μs</td><td>1.0320 μs</td><td>0.9654 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>5</td><td>True</td><td>79.805 μs</td><td>0.6187 μs</td><td>0.5167 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>6</td><td>False</td><td>84.490 μs</td><td>0.2784 μs</td><td>0.2468 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>6</td><td>True</td><td>166.730 μs</td><td>0.5719 μs</td><td>0.5350 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>7</td><td>False</td><td>453.619 μs</td><td>2.1378 μs</td><td>1.9997 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>7</td><td>True</td><td>452.451 μs</td><td>1.4309 μs</td><td>1.3385 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>8</td><td>False</td><td>755.448 μs</td><td>0.7892 μs</td><td>0.7382 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>8</td><td>True</td><td>375.527 μs</td><td>3.0205 μs</td><td>2.5223 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>9</td><td>False</td><td>501.875 μs</td><td>2.1927 μs</td><td>1.9438 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>9</td><td>True</td><td>933.000 μs</td><td>9.1963 μs</td><td>8.6022 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>10</td><td>False</td><td>7.636 μs</td><td>0.0413 μs</td><td>0.0386 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>10</td><td>True</td><td>8.521 μs</td><td>0.0276 μs</td><td>0.0258 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>11</td><td>False</td><td>7.342 μs</td><td>0.0088 μs</td><td>0.0083 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>11</td><td>True</td><td>2,892.387 μs</td><td>4.6952 μs</td><td>4.3919 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>12</td><td>False</td><td>18,577.038 μs</td><td>65.5871 μs</td><td>51.2061 μs</td>
|
||||
</tr><tr><td>Benchmark</td><td>12</td><td>True</td><td>20,108.906 μs</td><td>54.5080 μs</td><td>48.3199 μs</td>
|
||||
</tr></tbody></table>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user