Skip to content

Instantly share code, notes, and snippets.

@HurricanKai
Last active April 8, 2019 11:54
Show Gist options
  • Select an option

  • Save HurricanKai/4068dbb1df23e3c801d9ba3f0964e548 to your computer and use it in GitHub Desktop.

Select an option

Save HurricanKai/4068dbb1df23e3c801d9ba3f0964e548 to your computer and use it in GitHub Desktop.
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Text;
namespace WorldStructure
{
public struct Chunk
{
public const int WIDTH = 16;
public const int HEIGHT = 256;
public const int DEPTH = 16;
private Memory<Block> blocks;
public Block this[int x, int y, int z]
{
get => blocks.Span[Index(x, y, z)];
set => blocks.Span[Index(x, y, z)] = value;
}
public Span<Block> Span => blocks.Span;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public ChunkSlice GetSlice(
int xMin, int yMin, int zMin,
int xMax, int yMax, int zMax)
=> new ChunkSlice(
blocks,
xMin, yMin, zMin,
xMax, yMax, zMax);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public RefChunkSlice GetRefSlice(
int xMin, int yMin, int zMin,
int xMax, int yMax, int zMax)
=> new RefChunkSlice(
blocks.Span,
xMin, yMin, zMin,
xMax, yMax, zMax);
public void Fill(in BlockMaterial mat)
{
if (blocks.IsEmpty)
blocks = new Memory<Block>(new Block[WIDTH * HEIGHT * DEPTH]);
blocks.Span.Fill(mat.CreateBlock());
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static int Index( int x, int y, int z)
{
/*if (x >= WIDTH || x < 0) IndexArgOutOfRange(nameof(x), WIDTH);
if (y >= HEIGHT || x < 0) IndexArgOutOfRange(nameof(y), HEIGHT);
if (z >= DEPTH || x < 0) IndexArgOutOfRange(nameof(z), DEPTH);*/
return x + WIDTH * (y + HEIGHT * z);
}
private static void IndexArgOutOfRange( string param, int max)
=> throw new IndexOutOfRangeException($"{param} has to be 0 < {param} < {max}");
}
}
using System;
using System.Runtime.CompilerServices;
namespace WorldStructure
{
public struct ChunkSlice
{
private Memory<Block> _blocks;
public readonly int XMin, YMin, ZMin;
public readonly int XMax, YMax, ZMax;
public readonly int Width, Height, Depth;
public Span<Block> Span => _blocks.Span;
public ChunkSlice(
Memory<Block> memory,
int xMin, int yMin, int zMin,
int xMax, int yMax, int zMax)
{
XMin = xMin;
YMin = yMin;
ZMin = zMin;
XMax = xMax;
YMax = yMax;
ZMax = zMax;
Width = XMax - XMin;
Height = YMax - YMin;
Depth = ZMax - ZMin;
var startIndex = Chunk.Index(xMin, yMin, zMin);
var endIndex = Chunk.Index(xMax, yMax, zMax);
_blocks = memory.Slice(
startIndex,
endIndex - startIndex);
}
public Block this[int relX, int relY, int relZ]
{
get => Span[Index(relX, relY, relZ)];
set => Span[Index(relX, relY, relZ)] = value;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public int Index(int x, int y, int z)
{
/*if (x >= Width || x < 0) IndexArgOutOfRange(nameof(x), Width);
if (y >= Height || x < 0) IndexArgOutOfRange(nameof(y), Height);
if (z >= Depth || x < 0) IndexArgOutOfRange(nameof(z), Depth);*/
return x + Width * (y + Height * z);
}
/*private static void IndexArgOutOfRange( string param, int max)
=> throw new IndexOutOfRangeException($"{param} has to be 0 < {param} < {max}");*/
}
}
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
using BenchmarkDotNet.Running;
using System;
using WorldStructure;
namespace WorldStructureBenchmarks
{
class Program
{
static void Main(string[] args)
{
BenchmarkRunner.Run<SliceVsRefSliceVsLoopFillBenchmark>();
}
}
[Orderer(SummaryOrderPolicy.FastestToSlowest)] // Order the result
[MemoryDiagnoser] // Analyse the memory usage
[CoreJob]
[GcForce(true)]
[IterationsColumn]
public class SliceVsRefSliceVsLoopFillBenchmark
{
public Chunk Chunk;
public BlockMaterial Material;
[Params(2)]
public int xMin, yMin, zMin;
[Params(8)]
public int xMax, yMax, zMax;
[GlobalSetup]
public void Setup()
{
Chunk = new Chunk();
Chunk.Fill(Materials.Air);
Material = Materials.Dirt;
}
[IterationSetup]
public void IterationSetup()
{
Chunk.Fill(Materials.Air);
}
[Benchmark]
public void Loop()
{
var span = Chunk.Span;
var block = Material.CreateBlock();
for (int x = xMin; x < xMax; x++)
{
for (int z = zMin; z < zMax; z++)
{
for (int y = yMin; y < yMax; y++)
{
span[Chunk.Index(x, y, z)] = block;
}
}
}
}
[Benchmark]
public void SliceFill()
{
Chunk.GetSlice(xMin, yMin, zMin, xMax, yMax, zMax).Span.Fill(Material.CreateBlock());
}
[Benchmark]
public void RefSliceFill()
{
Chunk.GetRefSlice(xMin, yMin, zMin, xMax, yMax, zMax).Span.Fill(Material.CreateBlock());
}
[Benchmark]
public void SliceLoop()
{
var slice = Chunk.GetSlice(xMin, yMin, zMin, xMax, yMax, zMax);
var span = slice.Span;
var block = Material.CreateBlock();
for (int x = 0; x < slice.Width; x++)
{
for (int z = 0; z < slice.Depth; z++)
{
for (int y = 0; y < slice.Height; y++)
{
span[Chunk.Index(x, y, z)] = block;
}
}
}
}
[Benchmark]
public void RefSliceLoop()
{
var slice = Chunk.GetRefSlice(xMin, yMin, zMin, xMax, yMax, zMax);
var span = slice.Span;
var block = Material.CreateBlock();
for (int x = 0; x < slice.Width; x++)
{
for (int z = 0; z < slice.Depth; z++)
{
for (int y = 0; y < slice.Height; y++)
{
span[Chunk.Index(x, y, z)] = block;
}
}
}
}
}
}
using System;
using System.Runtime.CompilerServices;
namespace WorldStructure
{
public ref struct RefChunkSlice
{
public readonly int XMin, YMin, ZMin;
public readonly int XMax, YMax, ZMax;
public readonly int Width, Height, Depth;
public Span<Block> Span;
public RefChunkSlice(
Span<Block> span,
int xMin, int yMin, int zMin,
int xMax, int yMax, int zMax)
{
XMin = xMin;
YMin = yMin;
ZMin = zMin;
XMax = xMax;
YMax = yMax;
ZMax = zMax;
Width = XMax - XMin;
Height = YMax - YMin;
Depth = ZMax - ZMin;
var startIndex = Chunk.Index(xMin, yMin, zMin);
var endIndex = Chunk.Index(xMax, yMax, zMax);
Span = span.Slice(
startIndex,
endIndex - startIndex);
}
public Block this[int relX, int relY, int relZ]
{
get => Span[Index(relX, relY, relZ)];
set => Span[Index(relX, relY, relZ)] = value;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public int Index(int x, int y, int z)
{
/*if (x >= Width || x < 0) IndexArgOutOfRange(nameof(x), Width);
if (y >= Height || x < 0) IndexArgOutOfRange(nameof(y), Height);
if (z >= Depth || x < 0) IndexArgOutOfRange(nameof(z), Depth);*/
return x + Width * (y + Height * z);
}
/*private static void IndexArgOutOfRange( string param, int max)
=> throw new IndexOutOfRangeException($"{param} has to be 0 < {param} < {max}");*/
}
}

This used a Struct of 4 ints, to avoid the optimization for smaller types

BenchmarkDotNet=v0.11.3, OS=Windows 10.0.17763.379 (1809/October2018Update/Redstone5)
Intel Pentium CPU G3250 3.20GHz, 1 CPU, 2 logical and 2 physical cores
.NET Core SDK=2.2.202
  [Host]     : .NET Core 2.2.3 (CoreCLR 4.6.27414.05, CoreFX 4.6.27414.05), 64bit RyuJIT
  Job-WCMDLP : .NET Core 2.2.3 (CoreCLR 4.6.27414.05, CoreFX 4.6.27414.05), 64bit RyuJIT

Runtime=Core  Force=True  InvocationCount=1  
UnrollFactor=1  
Method N Mean Error StdDev Median Iterations Gen 0/1k Op Gen 1/1k Op Gen 2/1k Op Allocated Memory/Op
SpanFill 1000 1.081 us 0.1068 us 0.3046 us 1.070 us 94.00 - - - -
Loop 1000 1.165 us 0.0256 us 0.0738 us 1.210 us 96.00 - - - -
SpanFill 10000 7.583 us 0.4377 us 1.2345 us 6.980 us 92.00 - - - -
Loop 10000 11.767 us 0.3977 us 1.1217 us 11.595 us 92.00 - - - -
SpanFill 100000 367.905 us 74.6713 us 220.1701 us 421.010 us 100.00 - - - -
Loop 100000 371.141 us 71.8670 us 209.6394 us 444.710 us 98.00 - - - -

Extended

BenchmarkDotNet=v0.11.3, OS=Windows 10.0.17763.379 (1809/October2018Update/Redstone5)
Intel Pentium CPU G3250 3.20GHz, 1 CPU, 2 logical and 2 physical cores
.NET Core SDK=2.2.202
  [Host]     : .NET Core 2.2.3 (CoreCLR 4.6.27414.05, CoreFX 4.6.27414.05), 64bit RyuJIT
  Job-YVKTFP : .NET Core 2.2.3 (CoreCLR 4.6.27414.05, CoreFX 4.6.27414.05), 64bit RyuJIT

Runtime=Core  Force=True  InvocationCount=1  
UnrollFactor=1  
Method xMin yMin zMin xMax yMax zMax Mean Error StdDev Median Iterations Gen 0/1k Op Gen 1/1k Op Gen 2/1k Op Allocated Memory/Op
Loop 4 4 4 8 8 8 3.204 us 0.1557 us 0.4392 us 3.125 us 92.00 - - - 40 B
RefSliceLoop 2 4 4 8 8 8 3.369 us 0.1463 us 0.4079 us 3.355 us 90.00 - - - 40 B
RefSliceLoop 4 4 4 8 8 8 3.489 us 0.1239 us 0.3453 us 3.520 us 90.00 - - - 40 B
RefSliceLoop 4 2 4 8 8 8 3.511 us 0.1694 us 0.4723 us 3.425 us 90.00 - - - 40 B
Loop 2 4 4 8 8 8 3.544 us 0.1735 us 0.4837 us 3.495 us 90.00 - - - 40 B
RefSliceLoop 4 4 2 8 8 8 3.565 us 0.1510 us 0.4185 us 3.525 us 89.00 - - - 40 B
SliceLoop 4 4 4 8 8 8 3.572 us 0.1519 us 0.4208 us 3.585 us 89.00 - - - 40 B
SliceLoop 2 4 4 8 8 8 3.604 us 0.1473 us 0.4083 us 3.610 us 89.00 - - - 40 B
SliceLoop 4 4 4 8 14 8 3.649 us 0.1362 us 0.3820 us 3.635 us 91.00 - - - 40 B
Loop 4 4 2 8 8 8 3.701 us 0.1996 us 0.5464 us 3.655 us 87.00 - - - 40 B
SliceLoop 4 2 4 8 8 8 3.731 us 0.1757 us 0.4780 us 3.815 us 86.00 - - - 40 B
Loop 4 2 4 8 8 8 3.758 us 0.1433 us 0.3971 us 3.865 us 89.00 - - - 40 B
RefSliceLoop 4 4 4 8 14 8 3.792 us 0.1546 us 0.4310 us 3.795 us 90.00 - - - 40 B
RefSliceLoop 2 2 4 8 8 8 3.813 us 0.1450 us 0.4041 us 3.825 us 90.00 - - - 40 B
Loop 2 4 2 8 8 8 3.833 us 0.2012 us 0.5608 us 3.670 us 90.00 - - - 40 B
SliceLoop 4 4 2 8 8 8 3.898 us 0.1220 us 0.3401 us 3.930 us 90.00 - - - 40 B
SliceLoop 2 4 2 8 8 8 3.957 us 0.1291 us 0.3598 us 3.970 us 90.00 - - - 40 B
RefSliceLoop 2 4 2 8 8 8 4.018 us 0.1889 us 0.5266 us 3.960 us 90.00 - - - 40 B
RefSliceLoop 4 2 2 8 8 8 4.037 us 0.2173 us 0.5949 us 3.990 us 87.00 - - - 40 B
RefSliceLoop 4 4 4 14 8 8 4.042 us 0.1687 us 0.4703 us 4.025 us 90.00 - - - 40 B
RefSliceLoop 4 4 4 8 8 14 4.128 us 0.1836 us 0.5087 us 4.090 us 89.00 - - - 40 B
SliceLoop 4 2 2 8 8 8 4.153 us 0.1239 us 0.3474 us 4.095 us 91.00 - - - 40 B
Loop 2 2 4 8 8 8 4.197 us 0.2270 us 0.6177 us 4.135 us 86.00 - - - 40 B
SliceLoop 2 2 4 8 8 8 4.233 us 0.1646 us 0.4505 us 4.220 us 87.00 - - - 40 B
Loop 4 4 4 14 8 8 4.237 us 0.1683 us 0.4608 us 4.175 us 87.00 - - - 40 B
RefSliceLoop 4 2 4 8 14 8 4.242 us 0.1627 us 0.4535 us 4.225 us 90.00 - - - 40 B
SliceLoop 4 2 2 8 14 8 4.247 us 0.1522 us 0.4218 us 4.290 us 89.00 - - - 40 B
SliceLoop 4 4 4 8 8 14 4.301 us 0.1522 us 0.4243 us 4.330 us 90.00 - - - 40 B
SliceLoop 4 4 4 14 8 8 4.303 us 0.1585 us 0.4393 us 4.295 us 89.00 - - - 40 B
Loop 4 4 4 8 14 8 4.315 us 0.1885 us 0.5225 us 4.415 us 89.00 - - - 40 B
RefSliceLoop 2 4 4 14 8 8 4.338 us 0.1326 us 0.3652 us 4.430 us 88.00 - - - 40 B
RefSliceLoop 4 4 2 8 8 14 4.348 us 0.1622 us 0.4357 us 4.385 us 84.00 - - - 40 B
Loop 4 2 2 8 8 8 4.413 us 0.1542 us 0.4323 us 4.420 us 91.00 - - - 40 B
RefSliceLoop 2 2 2 8 8 8 4.425 us 0.1533 us 0.4324 us 4.400 us 92.00 - - - 40 B
SliceLoop 4 2 4 8 14 8 4.452 us 0.1631 us 0.4520 us 4.480 us 89.00 - - - 40 B
SliceLoop 4 4 2 8 8 14 4.499 us 0.1521 us 0.4290 us 4.515 us 92.00 - - - 40 B
RefSliceLoop 4 4 2 8 14 8 4.539 us 0.2089 us 0.5719 us 4.440 us 87.00 - - - 40 B
RefSliceLoop 4 4 2 14 8 8 4.558 us 0.1498 us 0.4202 us 4.593 us 91.00 - - - 40 B
RefSliceLoop 4 2 4 14 8 8 4.584 us 0.1564 us 0.4360 us 4.600 us 90.00 - - - 40 B
RefSliceLoop 2 4 4 8 8 14 4.615 us 0.1647 us 0.4619 us 4.515 us 91.00 - - - 40 B
Loop 2 4 4 14 8 8 4.644 us 0.2137 us 0.6026 us 4.620 us 92.00 - - - 40 B
SliceLoop 4 4 2 14 8 8 4.727 us 0.1633 us 0.4606 us 4.735 us 92.00 - - - 40 B
RefSliceLoop 2 2 4 8 14 8 4.741 us 0.1569 us 0.4349 us 4.690 us 89.00 - - - 40 B
SliceLoop 2 4 4 14 8 8 4.747 us 0.1798 us 0.5013 us 4.700 us 90.00 - - - 40 B
Loop 4 4 2 14 8 8 4.748 us 0.2281 us 0.6396 us 4.685 us 91.00 - - - 40 B
SliceLoop 2 2 2 8 8 8 4.756 us 0.1418 us 0.3999 us 4.705 us 92.00 - - - 40 B
RefSliceLoop 2 4 2 14 8 8 4.759 us 0.1641 us 0.4574 us 4.775 us 90.00 - - - 40 B
SliceLoop 4 4 2 8 14 8 4.764 us 0.1259 us 0.3467 us 4.820 us 88.00 - - - 40 B
RefSliceLoop 4 2 2 8 14 8 4.781 us 0.1885 us 0.5065 us 4.745 us 84.00 - - - 40 B
SliceLoop 2 4 4 8 14 8 4.785 us 0.1463 us 0.4054 us 4.675 us 89.00 - - - 40 B
Loop 4 2 4 8 14 8 4.793 us 0.2068 us 0.5799 us 4.680 us 91.00 - - - 40 B
Loop 4 2 4 14 8 8 4.797 us 0.1788 us 0.5015 us 4.790 us 91.00 - - - 40 B
SliceLoop 4 2 4 8 8 14 4.870 us 0.1444 us 0.3905 us 4.915 us 85.00 - - - 40 B
RefSliceLoop 4 2 4 8 8 14 4.883 us 0.1860 us 0.5215 us 4.905 us 91.00 - - - 40 B
RefSliceLoop 2 4 4 8 14 8 4.950 us 0.1429 us 0.3960 us 4.985 us 89.00 - - - 40 B
Loop 4 4 4 8 8 14 4.956 us 0.1547 us 0.4337 us 4.905 us 91.00 - - - 40 B
RefSliceLoop 2 2 4 14 8 8 4.973 us 0.1962 us 0.5533 us 4.895 us 92.00 - - - 40 B
RefSliceLoop 4 2 2 8 8 14 5.109 us 0.1603 us 0.4416 us 5.070 us 88.00 - - - 40 B
Loop 2 2 4 14 8 8 5.158 us 0.2018 us 0.5592 us 5.185 us 89.00 - - - 40 B
SliceLoop 4 2 4 14 8 8 5.178 us 0.1705 us 0.4781 us 5.115 us 91.00 - - - 40 B
Loop 4 4 2 8 14 8 5.197 us 0.2471 us 0.6929 us 5.110 us 91.00 - - - 40 B
SliceLoop 2 4 4 8 8 14 5.206 us 0.2067 us 0.5625 us 5.225 us 86.00 - - - 40 B
SliceLoop 4 2 2 8 8 14 5.207 us 0.1654 us 0.4691 us 5.215 us 93.00 - - - 40 B
SliceLoop 2 2 4 8 14 8 5.211 us 0.1580 us 0.4377 us 5.130 us 89.00 - - - 40 B
Loop 2 4 4 8 14 8 5.234 us 0.2233 us 0.6149 us 5.250 us 88.00 - - - 40 B
Loop 2 2 2 8 8 8 5.242 us 0.2411 us 0.6600 us 5.240 us 87.00 - - - 40 B
RefSliceLoop 2 4 2 8 8 14 5.280 us 0.1747 us 0.4783 us 5.175 us 87.00 - - - 40 B
SliceLoop 2 2 4 14 8 8 5.294 us 0.1571 us 0.4352 us 5.320 us 89.00 - - - 40 B
SliceLoop 2 4 2 14 8 8 5.409 us 0.1605 us 0.4500 us 5.480 us 91.00 - - - 40 B
Loop 2 2 4 8 14 8 5.410 us 0.2061 us 0.5677 us 5.320 us 88.00 - - - 40 B
RefSliceLoop 2 4 2 8 14 8 5.443 us 0.1741 us 0.4795 us 5.380 us 88.00 - - - 40 B
RefSliceLoop 4 2 2 14 8 8 5.447 us 0.1633 us 0.4497 us 5.420 us 88.00 - - - 40 B
RefSliceLoop 2 2 4 8 8 14 5.484 us 0.1325 us 0.3650 us 5.495 us 88.00 - - - 40 B
Loop 2 4 2 14 8 8 5.574 us 0.2314 us 0.6450 us 5.635 us 90.00 - - - 40 B
SliceLoop 2 4 2 8 8 14 5.661 us 0.1950 us 0.5468 us 5.730 us 91.00 - - - 40 B
Loop 4 2 2 14 8 8 5.852 us 0.2015 us 0.5651 us 5.890 us 91.00 - - - 40 B
RefSliceLoop 4 4 4 8 14 14 5.913 us 0.1888 us 0.5136 us 5.975 us 86.00 - - - 40 B
RefSliceLoop 4 4 4 14 8 14 5.949 us 0.1692 us 0.4690 us 5.840 us 89.00 - - - 40 B
SliceLoop 2 2 4 8 8 14 5.959 us 0.2818 us 0.7855 us 5.840 us 90.00 - - - 40 B
RefSliceLoop 2 2 2 8 8 14 5.960 us 0.1742 us 0.4827 us 5.860 us 89.00 - - - 40 B
SliceLoop 2 4 2 8 14 8 5.983 us 0.2043 us 0.5762 us 5.995 us 92.00 - - - 40 B
Loop 4 4 2 8 8 14 6.013 us 0.2132 us 0.5909 us 6.100 us 89.00 - - - 40 B
SliceLoop 4 2 2 14 8 8 6.081 us 0.1454 us 0.4078 us 6.005 us 91.00 - - - 40 B
SliceLoop 4 4 4 8 14 14 6.083 us 0.1569 us 0.4401 us 6.080 us 91.00 - - - 40 B
RefSliceLoop 2 2 2 8 14 8 6.132 us 0.1705 us 0.4780 us 6.045 us 91.00 - - - 40 B
Loop 4 4 4 14 14 8 6.146 us 0.2488 us 0.6852 us 6.040 us 88.00 - - - 40 B
Loop 4 2 2 8 14 8 6.165 us 0.3708 us 1.0398 us 5.995 us 91.00 - - - 40 B
RefSliceLoop 2 2 2 14 8 8 6.185 us 0.2097 us 0.5811 us 6.185 us 89.00 - - - 40 B
RefSliceLoop 4 4 4 14 14 8 6.202 us 0.1587 us 0.4425 us 6.185 us 90.00 - - - 40 B
Loop 2 4 2 8 14 8 6.238 us 0.2088 us 0.5889 us 6.160 us 92.00 - - - 40 B
RefSliceLoop 4 4 2 8 14 14 6.283 us 0.1858 us 0.5209 us 6.215 us 91.00 - - - 40 B
Loop 2 4 4 8 8 14 6.288 us 0.2152 us 0.6000 us 6.200 us 90.00 - - - 40 B
SliceLoop 4 4 4 14 8 14 6.293 us 0.1967 us 0.5515 us 6.205 us 91.00 - - - 40 B
SliceLoop 4 4 4 14 14 8 6.373 us 0.1561 us 0.4324 us 6.300 us 89.00 - - - 40 B
Loop 2 2 2 14 8 8 6.396 us 0.2473 us 0.6975 us 6.335 us 92.00 - - - 40 B
RefSliceLoop 4 2 4 8 14 14 6.460 us 0.2113 us 0.5926 us 6.490 us 91.00 - - - 40 B
SliceLoop 2 2 2 14 8 8 6.465 us 0.1588 us 0.4401 us 6.440 us 89.00 - - - 40 B
RefSliceLoop 4 4 2 14 8 14 6.557 us 0.1351 us 0.3390 us 6.480 us 74.00 - - - 40 B
RefSliceLoop 2 4 4 14 14 8 6.587 us 0.1663 us 0.4635 us 6.560 us 90.00 - - - 40 B
RefSliceLoop 2 4 4 14 8 14 6.616 us 0.1466 us 0.4061 us 6.625 us 89.00 - - - 40 B
SliceLoop 2 2 2 8 8 14 6.640 us 0.1944 us 0.5257 us 6.605 us 85.00 - - - 40 B
RefSliceLoop 4 2 4 14 14 8 6.649 us 0.1601 us 0.4383 us 6.685 us 87.00 - - - 40 B
SliceLoop 2 2 2 8 14 8 6.687 us 0.1792 us 0.4937 us 6.770 us 88.00 - - - 40 B
Loop 2 4 4 14 14 8 6.701 us 0.2888 us 0.7856 us 6.680 us 86.00 - - - 40 B
Loop 4 2 4 8 8 14 6.766 us 0.2564 us 0.7063 us 6.680 us 88.00 - - - 40 B
SliceLoop 4 2 4 14 14 8 6.834 us 0.1704 us 0.4778 us 6.910 us 91.00 - - - 40 B
Loop 4 2 4 14 14 8 6.850 us 0.2550 us 0.6936 us 6.915 us 86.00 - - - 40 B
SliceLoop 4 4 2 8 14 14 6.861 us 0.1466 us 0.4061 us 6.870 us 89.00 - - - 40 B
SliceLoop 4 2 4 8 14 14 6.870 us 0.1765 us 0.4890 us 6.915 us 89.00 - - - 40 B
SliceLoop 2 4 4 14 14 8 6.886 us 0.1777 us 0.4983 us 6.935 us 91.00 - - - 40 B
Loop 2 2 2 8 14 8 6.938 us 0.2953 us 0.8282 us 6.685 us 91.00 - - - 40 B
RefSliceLoop 2 2 4 14 14 8 7.117 us 0.1733 us 0.4686 us 7.125 us 85.00 - - - 40 B
RefSliceLoop 4 2 2 8 14 14 7.134 us 0.2301 us 0.6453 us 7.075 us 91.00 - - - 40 B
Loop 2 4 2 8 8 14 7.180 us 0.2585 us 0.7121 us 7.035 us 88.00 - - - 40 B
RefSliceLoop 4 4 2 14 14 8 7.192 us 0.1839 us 0.5034 us 7.140 us 87.00 - - - 40 B
SliceLoop 4 4 2 14 8 14 7.241 us 0.2058 us 0.5737 us 7.215 us 90.00 - - - 40 B
RefSliceLoop 2 4 2 14 8 14 7.280 us 0.2390 us 0.6542 us 7.290 us 87.00 - - - 40 B
Loop 4 2 2 8 8 14 7.301 us 0.2642 us 0.7452 us 7.490 us 92.00 - - - 40 B
SliceLoop 2 4 4 14 8 14 7.330 us 0.2192 us 0.6037 us 7.345 us 88.00 - - - 40 B
RefSliceLoop 2 4 4 8 14 14 7.479 us 0.2626 us 0.7364 us 7.435 us 91.00 - - - 40 B
Loop 2 2 4 14 14 8 7.506 us 0.2837 us 0.7767 us 7.455 us 87.00 - - - 40 B
RefSliceLoop 4 2 4 14 8 14 7.566 us 0.2425 us 0.6637 us 7.455 us 87.00 - - - 40 B
Loop 2 2 4 8 8 14 7.600 us 0.2162 us 0.6027 us 7.530 us 90.00 - - - 40 B
SliceLoop 4 2 2 8 14 14 7.703 us 0.2298 us 0.6445 us 7.730 us 91.00 - - - 40 B
Loop 4 4 2 14 14 8 7.803 us 0.2916 us 0.7982 us 7.610 us 87.00 - - - 40 B
SliceLoop 2 2 4 14 14 8 7.907 us 0.2294 us 0.6432 us 7.900 us 91.00 - - - 40 B
SliceLoop 2 4 4 8 14 14 7.983 us 0.2192 us 0.6109 us 7.805 us 90.00 - - - 40 B
SliceLoop 2 4 2 14 8 14 7.987 us 0.2087 us 0.5817 us 8.075 us 90.00 - - - 40 B
SliceLoop 4 4 2 14 14 8 8.017 us 0.2032 us 0.5596 us 7.995 us 88.00 - - - 40 B
Loop 4 4 4 14 8 14 8.178 us 0.1912 us 0.5394 us 8.010 us 92.00 - - - 40 B
RefSliceLoop 2 2 4 14 8 14 8.188 us 0.1956 us 0.5547 us 8.140 us 93.00 - - - 40 B
RefSliceLoop 4 2 2 14 8 14 8.215 us 0.1664 us 0.4384 us 8.210 us 81.00 - - - 40 B
RefSliceLoop 2 2 4 8 14 14 8.236 us 0.2155 us 0.5973 us 8.210 us 89.00 - - - 40 B
SliceLoop 4 2 4 14 8 14 8.292 us 0.2241 us 0.6320 us 8.225 us 92.00 - - - 40 B
RefSliceLoop 2 4 2 8 14 14 8.318 us 0.1697 us 0.4411 us 8.385 us 79.00 - - - 40 B
RefSliceLoop 2 4 2 14 14 8 8.386 us 0.2630 us 0.7201 us 8.195 us 87.00 - - - 40 B
Loop 4 4 4 8 14 14 8.386 us 0.2414 us 0.6769 us 8.295 us 91.00 - - - 40 B
RefSliceLoop 4 2 2 14 14 8 8.408 us 0.1932 us 0.5385 us 8.400 us 90.00 - - - 40 B
Loop 4 2 2 14 14 8 8.704 us 0.2133 us 0.5947 us 8.480 us 90.00 - - - 40 B
Loop 2 2 2 8 8 14 8.761 us 0.2789 us 0.7774 us 8.715 us 90.00 - - - 40 B
Loop 2 4 2 14 14 8 8.833 us 0.3262 us 0.9148 us 8.795 us 91.00 - - - 40 B
SliceLoop 2 2 4 14 8 14 8.840 us 0.1845 us 0.5235 us 8.805 us 93.00 - - - 40 B
SliceLoop 2 4 2 8 14 14 8.912 us 0.2014 us 0.5580 us 8.860 us 89.00 - - - 40 B
RefSliceLoop 2 2 2 14 14 8 8.994 us 0.2388 us 0.6696 us 8.995 us 91.00 - - - 40 B
SliceLoop 4 2 2 14 14 8 9.031 us 0.2391 us 0.6586 us 8.990 us 88.00 - - - 40 B
SliceLoop 2 4 2 14 14 8 9.042 us 0.2801 us 0.7621 us 9.020 us 86.00 - - - 40 B
SliceLoop 4 2 2 14 8 14 9.181 us 0.2273 us 0.6410 us 9.090 us 92.00 - - - 40 B
RefSliceLoop 2 2 2 8 14 14 9.223 us 0.2838 us 0.7624 us 9.305 us 84.00 - - - 40 B
SliceLoop 2 2 4 8 14 14 9.248 us 0.3266 us 0.8942 us 9.165 us 87.00 - - - 40 B
RefSliceLoop 2 2 2 14 8 14 9.289 us 0.2164 us 0.6104 us 9.205 us 92.00 - - - 40 B
Loop 2 4 4 14 8 14 9.345 us 0.2256 us 0.6362 us 9.210 us 92.00 - - - 40 B
Loop 4 4 2 8 14 14 9.577 us 0.2386 us 0.6450 us 9.395 us 85.00 - - - 40 B
Loop 4 2 4 8 14 14 9.618 us 0.2045 us 0.5424 us 9.580 us 82.00 - - - 40 B
Loop 4 4 2 14 8 14 9.887 us 0.2024 us 0.5472 us 9.935 us 85.00 - - - 40 B
Loop 2 2 2 14 14 8 9.898 us 0.3077 us 0.8680 us 9.725 us 92.00 - - - 40 B
SliceLoop 2 2 2 8 14 14 10.339 us 0.2679 us 0.7333 us 10.360 us 87.00 - - - 40 B
SliceLoop 2 2 2 14 14 8 10.394 us 0.2976 us 0.8198 us 10.480 us 88.00 - - - 40 B
RefSliceLoop 4 4 4 14 14 14 10.428 us 0.2165 us 0.6036 us 10.480 us 90.00 - - - 40 B
SliceLoop 2 2 2 14 8 14 10.543 us 0.2301 us 0.6102 us 10.610 us 82.00 - - - 40 B
Loop 4 2 4 14 8 14 10.575 us 0.2389 us 0.6621 us 10.530 us 89.00 - - - 40 B
Loop 2 4 2 14 8 14 11.033 us 0.2610 us 0.7320 us 10.825 us 91.00 - - - 40 B
Loop 4 2 2 8 14 14 11.176 us 0.2661 us 0.7461 us 10.920 us 91.00 - - - 40 B
Loop 2 4 4 8 14 14 11.246 us 0.2809 us 0.7736 us 11.270 us 88.00 - - - 40 B
SliceLoop 4 4 4 14 14 14 11.485 us 0.2821 us 0.7577 us 11.315 us 84.00 - - - 40 B
Loop 2 2 4 14 8 14 11.693 us 0.2363 us 0.5661 us 11.605 us 68.00 - - - 40 B
RefSliceLoop 4 4 2 14 14 14 11.865 us 0.2644 us 0.7103 us 12.000 us 84.00 - - - 40 B
Loop 4 2 2 14 8 14 11.930 us 0.2755 us 0.7770 us 11.800 us 92.00 - - - 40 B
RefSliceLoop 2 4 4 14 14 14 11.947 us 0.2425 us 0.6640 us 12.080 us 87.00 - - - 40 B
RefSliceLoop 4 2 4 14 14 14 12.023 us 0.2684 us 0.7527 us 12.120 us 91.00 - - - 40 B
Loop 2 2 4 8 14 14 12.754 us 0.2810 us 0.7740 us 12.690 us 88.00 - - - 40 B
Loop 2 4 2 8 14 14 12.901 us 0.3865 us 1.0963 us 12.595 us 93.00 - - - 40 B
SliceLoop 2 4 4 14 14 14 13.065 us 0.2644 us 0.7238 us 12.925 us 87.00 - - - 40 B
SliceLoop 4 2 4 14 14 14 13.306 us 0.2861 us 0.7929 us 13.460 us 89.00 - - - 40 B
SliceLoop 4 4 2 14 14 14 13.366 us 0.3082 us 0.8332 us 13.500 us 85.00 - - - 40 B
RefSliceLoop 2 2 4 14 14 14 13.542 us 0.4015 us 1.1583 us 13.420 us 96.00 - - - 40 B
RefSliceLoop 2 4 2 14 14 14 13.626 us 0.2767 us 0.7713 us 13.435 us 90.00 - - - 40 B
RefSliceLoop 4 2 2 14 14 14 13.827 us 0.3605 us 1.0048 us 14.035 us 90.00 - - - 40 B
Loop 2 2 2 14 8 14 14.140 us 0.2851 us 0.5214 us 14.090 us 42.00 - - - 40 B
Loop 2 2 2 8 14 14 14.826 us 0.3217 us 0.8967 us 14.620 us 90.00 - - - 40 B
SliceLoop 2 4 2 14 14 14 15.081 us 0.3043 us 0.7801 us 14.785 us 77.00 - - - 40 B
SliceLoop 4 2 2 14 14 14 15.487 us 0.4084 us 1.1247 us 15.437 us 88.00 - - - 40 B
SliceLoop 2 2 4 14 14 14 15.739 us 0.4181 us 1.1517 us 15.700 us 88.00 - - - 40 B
RefSliceLoop 2 2 2 14 14 14 15.846 us 0.3195 us 0.8691 us 15.705 us 86.00 - - - 40 B
Loop 4 4 4 14 14 14 16.539 us 0.3334 us 0.8116 us 16.570 us 70.00 - - - 40 B
SliceLoop 2 2 2 14 14 14 18.208 us 0.4752 us 1.3481 us 18.435 us 93.00 - - - 40 B
Loop 4 2 4 14 14 14 19.033 us 0.4208 us 1.0001 us 18.770 us 67.00 - - - 40 B
Loop 2 4 4 14 14 14 19.188 us 0.3842 us 0.7848 us 19.025 us 51.00 - - - 40 B
Loop 4 4 2 14 14 14 19.859 us 0.4001 us 0.9111 us 19.735 us 62.00 - - - 40 B
Loop 2 2 4 14 14 14 21.367 us 0.4253 us 0.8784 us 21.315 us 52.00 - - - 40 B
Loop 4 2 2 14 14 14 22.350 us 0.4460 us 0.9601 us 21.970 us 56.00 - - - 40 B
Loop 2 4 2 14 14 14 22.897 us 0.4779 us 1.3163 us 22.595 us 88.00 - - - 40 B
Loop 2 2 2 14 14 14 26.671 us 0.6110 us 1.4038 us 26.315 us 63.00 - - - 40 B
SliceFill 2 4 4 14 8 8 99.302 us 1.1871 us 0.9268 us 99.110 us 12.00 - - - 40 B
RefSliceFill 2 2 4 8 8 8 99.356 us 0.9698 us 0.8597 us 99.235 us 14.00 - - - 40 B
SliceFill 2 4 4 8 8 8 99.598 us 0.8539 us 0.6667 us 99.740 us 12.00 - - - 40 B
RefSliceFill 2 2 4 14 8 8 99.653 us 1.3298 us 1.0382 us 99.320 us 12.00 - - - 40 B
SliceFill 2 2 4 8 8 8 99.792 us 1.3203 us 1.1704 us 99.585 us 14.00 - - - 40 B
SliceFill 2 2 4 8 14 8 99.922 us 1.7705 us 1.4784 us 99.630 us 13.00 - - - 40 B
RefSliceFill 4 4 4 8 14 8 99.926 us 1.3789 us 1.2223 us 99.405 us 14.00 - - - 40 B
RefSliceFill 2 4 4 8 8 8 99.933 us 1.9596 us 2.0968 us 99.250 us 18.00 - - - 40 B
SliceFill 2 2 4 14 8 8 100.152 us 1.8560 us 1.5498 us 99.275 us 13.00 - - - 40 B
SliceFill 4 2 4 8 14 8 100.201 us 1.4896 us 1.2439 us 99.870 us 13.00 - - - 40 B
SliceFill 4 4 4 8 14 8 100.363 us 1.6997 us 1.5899 us 99.890 us 15.00 - - - 40 B
SliceFill 4 4 4 14 8 8 100.375 us 1.9146 us 2.2048 us 100.040 us 20.00 - - - 40 B
SliceFill 4 4 4 8 8 8 100.561 us 2.3707 us 2.5366 us 99.550 us 18.00 - - - 40 B
RefSliceFill 4 4 4 14 8 8 100.570 us 1.9353 us 1.9874 us 99.705 us 17.00 - - - 40 B
RefSliceFill 2 4 4 8 14 8 100.650 us 1.8861 us 1.8524 us 100.075 us 16.00 - - - 40 B
SliceFill 4 4 4 14 14 8 100.659 us 1.6509 us 1.4635 us 100.230 us 14.00 - - - 40 B
RefSliceFill 4 4 4 8 8 8 100.680 us 1.9073 us 1.7841 us 100.180 us 15.00 - - - 40 B
RefSliceFill 2 4 4 14 8 8 100.771 us 2.0915 us 4.0296 us 99.495 us 46.00 - - - 40 B
SliceFill 4 2 4 8 8 8 100.927 us 1.9894 us 2.4431 us 100.250 us 22.00 - - - 40 B
SliceFill 4 2 4 14 14 8 100.953 us 1.9938 us 1.8650 us 100.500 us 15.00 - - - 40 B
SliceFill 2 2 4 14 14 8 101.077 us 1.6775 us 1.5691 us 100.970 us 15.00 - - - 40 B
RefSliceFill 4 2 4 8 14 8 101.078 us 1.9920 us 1.8634 us 100.185 us 15.00 - - - 40 B
RefSliceFill 4 2 4 8 8 8 101.117 us 1.9703 us 2.6303 us 100.725 us 25.00 - - - 40 B
SliceFill 2 4 4 8 14 8 101.173 us 2.2921 us 2.1441 us 100.460 us 15.00 - - - 40 B
SliceFill 4 2 4 14 8 8 101.258 us 2.3660 us 3.5413 us 100.455 us 30.00 - - - 40 B
SliceFill 2 4 4 14 14 8 101.346 us 2.3418 us 4.4555 us 99.470 us 45.00 - - - 40 B
RefSliceFill 4 2 4 14 8 8 101.408 us 2.4377 us 3.5732 us 100.615 us 29.00 - - - 40 B
RefSliceFill 2 2 4 8 14 8 101.498 us 1.9494 us 2.5348 us 101.190 us 24.00 - - - 40 B
RefSliceFill 4 2 4 14 14 8 101.686 us 2.9425 us 2.8900 us 100.830 us 16.00 - - - 40 B
RefSliceFill 2 4 4 14 14 8 102.102 us 4.5907 us 4.2941 us 100.535 us 15.00 - - - 40 B
RefSliceFill 2 2 4 14 14 8 102.260 us 3.1378 us 4.1889 us 100.420 us 25.00 - - - 40 B
RefSliceFill 4 4 4 14 14 8 104.534 us 2.5296 us 6.8390 us 101.310 us 85.00 - - - 40 B
SliceFill 4 4 2 8 14 8 147.407 us 2.3805 us 1.8586 us 146.990 us 12.00 - - - 40 B
RefSliceFill 2 4 2 8 8 8 147.495 us 2.3134 us 1.8061 us 146.720 us 12.00 - - - 40 B
RefSliceFill 2 2 2 8 8 8 147.838 us 2.7482 us 2.4362 us 147.195 us 14.00 - - - 40 B
RefSliceFill 2 2 2 8 14 8 147.855 us 1.9077 us 1.4894 us 147.530 us 12.00 - - - 40 B
SliceFill 4 4 2 14 8 8 147.943 us 2.8312 us 2.5098 us 147.600 us 14.00 - - - 40 B
SliceFill 2 4 2 8 8 8 148.027 us 2.4855 us 2.0755 us 147.265 us 13.00 - - - 40 B
RefSliceFill 4 4 2 8 14 8 148.050 us 1.7085 us 1.5145 us 148.200 us 14.00 - - - 40 B
RefSliceFill 2 4 2 14 8 8 148.235 us 2.0816 us 1.7382 us 147.950 us 13.00 - - - 40 B
SliceFill 4 4 2 8 8 8 148.383 us 2.7783 us 2.1691 us 147.800 us 12.00 - - - 40 B
SliceFill 2 2 2 8 14 8 148.619 us 2.8298 us 2.5085 us 147.440 us 14.00 - - - 40 B
SliceFill 4 2 2 14 8 8 148.751 us 2.9185 us 2.5872 us 147.865 us 14.00 - - - 40 B
SliceFill 4 2 2 8 14 8 148.833 us 2.2434 us 1.7515 us 148.050 us 12.00 - - - 40 B
RefSliceFill 2 2 2 14 8 8 148.873 us 2.9705 us 3.9655 us 147.285 us 25.00 - - - 40 B
SliceFill 2 4 2 8 14 8 148.892 us 2.1583 us 1.9133 us 148.085 us 14.00 - - - 40 B
RefSliceFill 4 2 2 14 14 8 148.947 us 1.8701 us 1.5616 us 148.570 us 13.00 - - - 40 B
SliceFill 2 4 2 14 14 8 149.078 us 2.8618 us 2.8107 us 148.615 us 16.00 - - - 40 B
SliceFill 4 2 2 8 8 8 149.085 us 2.8815 us 2.4062 us 148.700 us 13.00 - - - 40 B
SliceFill 4 2 2 14 14 8 149.423 us 2.8590 us 2.9360 us 149.070 us 17.00 - - - 40 B
SliceFill 2 4 2 14 8 8 149.744 us 2.9438 us 5.3828 us 148.215 us 42.00 - - - 40 B
RefSliceFill 4 2 2 8 14 8 150.179 us 3.4389 us 5.3540 us 148.895 us 32.00 - - - 40 B
RefSliceFill 2 4 2 14 14 8 150.188 us 5.5789 us 5.9693 us 148.155 us 18.00 - - - 40 B
SliceFill 2 2 2 14 8 8 150.218 us 3.4569 us 4.4950 us 148.780 us 24.00 - - - 40 B
RefSliceFill 4 4 2 14 14 8 150.452 us 3.2632 us 6.2871 us 147.715 us 46.00 - - - 40 B
RefSliceFill 2 4 2 8 14 8 150.554 us 3.6690 us 5.6030 us 149.080 us 31.00 - - - 40 B
RefSliceFill 4 4 2 8 8 8 150.852 us 3.3387 us 5.4857 us 148.775 us 35.00 - - - 40 B
RefSliceFill 2 2 2 14 14 8 150.893 us 3.0518 us 6.1648 us 148.945 us 50.00 - - - 40 B
SliceFill 2 2 2 8 8 8 151.219 us 3.5219 us 6.5280 us 148.935 us 43.00 - - - 40 B
RefSliceFill 4 4 2 14 8 8 152.027 us 3.9525 us 9.0816 us 148.390 us 63.00 - - - 40 B
RefSliceFill 4 2 2 8 8 8 152.419 us 3.5576 us 9.8582 us 148.435 us 89.00 - - - 40 B
SliceFill 4 4 2 14 14 8 154.864 us 4.5094 us 12.4203 us 149.180 us 88.00 - - - 40 B
RefSliceFill 4 2 2 14 8 8 158.033 us 6.0747 us 17.2328 us 148.935 us 93.00 - - - 40 B
SliceFill 2 2 2 14 14 8 158.079 us 6.3159 us 17.7103 us 149.575 us 91.00 - - - 40 B
RefSliceFill 4 4 4 8 8 14 244.088 us 3.3083 us 2.9327 us 243.595 us 14.00 - - - 40 B
RefSliceFill 4 2 4 8 8 14 244.538 us 4.6477 us 4.1201 us 243.395 us 14.00 - - - 40 B
RefSliceFill 2 4 4 8 14 14 246.230 us 8.0448 us 7.5251 us 242.910 us 15.00 - - - 40 B
SliceFill 2 2 4 14 8 14 247.960 us 9.1500 us 8.5589 us 245.420 us 15.00 - - - 40 B
RefSliceFill 4 4 4 14 8 14 248.045 us 4.9644 us 9.7992 us 244.010 us 48.00 - - - 40 B
SliceFill 4 4 4 8 14 14 248.780 us 7.4231 us 10.1609 us 245.645 us 26.00 - - - 40 B
RefSliceFill 4 4 4 8 14 14 248.965 us 6.4785 us 8.6487 us 245.945 us 25.00 - - - 40 B
SliceFill 4 4 4 14 8 14 249.036 us 4.9483 us 10.7571 us 243.650 us 57.00 - - - 40 B
RefSliceFill 2 4 4 8 8 14 249.393 us 4.9619 us 9.9094 us 244.720 us 49.00 - - - 40 B
RefSliceFill 2 2 4 14 8 14 249.559 us 4.8982 us 9.4371 us 245.155 us 46.00 - - - 40 B
SliceFill 4 4 4 8 8 14 249.746 us 4.9848 us 12.4139 us 245.090 us 73.00 - - - 40 B
RefSliceFill 4 4 4 14 14 14 250.183 us 5.8991 us 9.8561 us 246.080 us 36.00 - - - 40 B
RefSliceFill 2 2 4 8 14 14 250.273 us 4.9732 us 11.1232 us 245.490 us 60.00 - - - 40 B
RefSliceFill 2 2 4 8 8 14 250.473 us 4.9896 us 11.7610 us 244.790 us 66.00 - - - 40 B
RefSliceFill 2 4 4 14 8 14 251.126 us 5.0092 us 13.0196 us 244.770 us 79.00 - - - 40 B
SliceFill 2 2 4 14 14 14 251.423 us 4.9994 us 11.2845 us 245.730 us 61.00 - - - 40 B
RefSliceFill 4 2 4 14 14 14 252.271 us 5.6413 us 15.2515 us 245.115 us 85.00 - - - 40 B
SliceFill 2 4 4 8 14 14 252.411 us 5.0184 us 12.6821 us 246.687 us 75.00 - - - 40 B
SliceFill 4 2 4 14 14 14 252.551 us 5.0033 us 11.8908 us 246.385 us 67.00 - - - 40 B
RefSliceFill 2 2 4 14 14 14 252.573 us 5.4791 us 14.2409 us 244.935 us 79.00 - - - 40 B
SliceFill 2 2 4 8 8 14 253.002 us 5.1914 us 14.5572 us 245.170 us 91.00 - - - 40 B
RefSliceFill 2 4 4 14 14 14 253.024 us 5.5474 us 15.4640 us 245.350 us 90.00 - - - 40 B
RefSliceFill 4 2 4 14 8 14 253.794 us 6.3038 us 17.2564 us 245.195 us 87.00 - - - 40 B
SliceFill 4 4 4 14 14 14 254.238 us 5.4052 us 14.7052 us 246.150 us 86.00 - - - 40 B
SliceFill 4 2 4 14 8 14 255.076 us 6.1959 us 17.2716 us 245.785 us 90.00 - - - 40 B
SliceFill 2 4 4 8 8 14 255.653 us 6.8521 us 19.2139 us 245.190 us 91.00 - - - 40 B
SliceFill 4 2 4 8 14 14 256.388 us 6.1391 us 17.0114 us 246.425 us 89.00 - - - 40 B
SliceFill 2 4 4 14 8 14 256.515 us 6.6794 us 18.7298 us 245.730 us 91.00 - - - 40 B
RefSliceFill 4 2 4 8 14 14 256.784 us 6.6710 us 18.3739 us 246.610 us 88.00 - - - 40 B
SliceFill 2 2 4 8 14 14 258.174 us 6.8023 us 18.6211 us 248.115 us 87.00 - - - 40 B
SliceFill 2 4 4 14 14 14 261.832 us 7.6212 us 20.3426 us 258.250 us 83.00 - - - 40 B
SliceFill 4 2 4 8 8 14 269.256 us 14.9669 us 41.7216 us 246.840 us 90.00 - - - 40 B
SliceFill 2 2 2 14 8 14 291.396 us 2.2427 us 1.9881 us 291.575 us 14.00 - - - 40 B
SliceFill 4 4 2 14 14 14 292.077 us 5.3301 us 4.4509 us 290.900 us 13.00 - - - 40 B
SliceFill 2 2 2 8 8 14 293.703 us 5.5192 us 5.4206 us 292.190 us 16.00 - - - 40 B
SliceFill 2 2 2 8 14 14 293.838 us 6.2857 us 5.2488 us 291.715 us 13.00 - - - 40 B
RefSliceFill 2 4 2 14 8 14 294.355 us 5.7949 us 6.6734 us 292.690 us 20.00 - - - 40 B
RefSliceFill 4 4 2 8 8 14 296.234 us 9.5327 us 13.0485 us 291.665 us 26.00 - - - 40 B
SliceFill 2 2 2 14 14 14 296.472 us 9.7110 us 10.3907 us 292.900 us 18.00 - - - 40 B
SliceFill 4 4 2 14 8 14 299.240 us 5.9027 us 12.7062 us 293.240 us 56.00 - - - 40 B
RefSliceFill 2 2 2 8 14 14 299.547 us 6.4176 us 13.9514 us 293.270 us 57.00 - - - 40 B
RefSliceFill 2 4 2 8 8 14 300.533 us 6.6661 us 18.0223 us 292.000 us 85.00 - - - 40 B
RefSliceFill 4 2 2 8 8 14 300.731 us 6.0066 us 12.2699 us 294.800 us 51.00 - - - 40 B
RefSliceFill 2 4 2 8 14 14 301.319 us 6.7417 us 14.0725 us 294.500 us 53.00 - - - 40 B
RefSliceFill 2 2 2 14 14 14 301.399 us 6.4570 us 13.1900 us 294.830 us 51.00 - - - 40 B
SliceFill 4 2 2 14 8 14 301.733 us 6.5793 us 16.8653 us 293.245 us 77.00 - - - 40 B
SliceFill 2 4 2 8 8 14 302.058 us 6.2761 us 16.9677 us 293.580 us 85.00 - - - 40 B
RefSliceFill 4 2 2 8 14 14 302.089 us 6.7023 us 16.9377 us 293.750 us 75.00 - - - 40 B
SliceFill 4 2 2 14 14 14 302.347 us 6.0336 us 16.6183 us 293.400 us 88.00 - - - 40 B
RefSliceFill 4 4 2 14 14 14 302.651 us 6.5843 us 18.0244 us 293.160 us 87.00 - - - 40 B
SliceFill 4 2 2 8 14 14 302.721 us 6.0807 us 16.8495 us 294.070 us 89.00 - - - 40 B
RefSliceFill 4 2 2 14 8 14 302.865 us 6.0468 us 16.4509 us 293.015 us 86.00 - - - 40 B
RefSliceFill 2 2 2 8 8 14 303.134 us 6.1086 us 16.8248 us 295.020 us 88.00 - - - 40 B
RefSliceFill 2 4 2 14 14 14 303.382 us 6.0399 us 16.6357 us 294.125 us 88.00 - - - 40 B
SliceFill 2 4 2 8 14 14 303.420 us 7.5188 us 16.1851 us 295.195 us 56.00 - - - 40 B
SliceFill 2 4 2 14 14 14 303.590 us 6.1303 us 17.1900 us 294.455 us 91.00 - - - 40 B
SliceFill 2 4 2 14 8 14 303.704 us 6.9125 us 19.0390 us 293.755 us 88.00 - - - 40 B
RefSliceFill 4 4 2 14 8 14 304.390 us 6.0591 us 15.9621 us 296.510 us 81.00 - - - 40 B
RefSliceFill 4 2 2 14 14 14 304.815 us 7.8090 us 22.0253 us 293.560 us 92.00 - - - 40 B
SliceFill 4 2 2 8 8 14 305.133 us 6.6764 us 18.1638 us 295.087 us 86.00 - - - 40 B
SliceFill 4 4 2 8 8 14 305.694 us 7.6418 us 21.1754 us 293.945 us 89.00 - - - 40 B
RefSliceFill 4 4 2 8 14 14 310.863 us 10.3908 us 28.6193 us 294.965 us 88.00 - - - 40 B
RefSliceFill 2 2 2 14 8 14 312.446 us 11.5150 us 31.7156 us 296.040 us 88.00 - - - 40 B
SliceFill 4 4 2 8 14 14 314.586 us 11.5171 us 31.9138 us 296.525 us 89.00 - - - 40 B
BenchmarkDotNet=v0.11.3, OS=Windows 10.0.17763.379 (1809/October2018Update/Redstone5)
Intel Pentium CPU G3250 3.20GHz, 1 CPU, 2 logical and 2 physical cores
.NET Core SDK=2.2.202
  [Host]     : .NET Core 2.2.3 (CoreCLR 4.6.27414.05, CoreFX 4.6.27414.05), 64bit RyuJIT
  Job-IFJUCZ : .NET Core 2.2.3 (CoreCLR 4.6.27414.05, CoreFX 4.6.27414.05), 64bit RyuJIT

Runtime=Core  Force=True  InvocationCount=1  
UnrollFactor=1  
Method xMin yMin zMin xMax yMax zMax Mean Error StdDev Median Iterations Gen 0/1k Op Gen 1/1k Op Gen 2/1k Op Allocated Memory/Op
RefSliceLoop 2 2 2 8 8 8 5.094 us 0.2490 us 0.7145 us 5.010 us 95.00 - - - 40 B
Loop 2 2 2 8 8 8 5.112 us 0.2223 us 0.6160 us 5.105 us 89.00 - - - 40 B
SliceLoop 2 2 2 8 8 8 5.576 us 0.2479 us 0.6829 us 5.475 us 88.00 - - - 40 B
RefSliceFill 2 2 2 8 8 8 148.552 us 3.6644 us 3.2484 us 147.695 us 14.00 - - - 40 B
SliceFill 2 2 2 8 8 8 154.590 us 4.3911 us 12.0945 us 148.965 us 88.00 - - - 40 B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment