From 2bdb95d470c9333a5db61c2a972955a3bfa79421 Mon Sep 17 00:00:00 2001 From: Maxwell Kang Date: Sun, 24 Nov 2024 13:08:20 -0800 Subject: [PATCH] add Span2D version for MultiDimensionalVsJaggedArray --- MultiDimensionalVsJaggedArray/Benchmark.cs | 35 ++++++++++++++++++- .../Benchmark.csproj | 1 + 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/MultiDimensionalVsJaggedArray/Benchmark.cs b/MultiDimensionalVsJaggedArray/Benchmark.cs index 3dc4c35e..ef2793ef 100644 --- a/MultiDimensionalVsJaggedArray/Benchmark.cs +++ b/MultiDimensionalVsJaggedArray/Benchmark.cs @@ -1,4 +1,6 @@ -namespace Test +using CommunityToolkit.HighPerformance; + +namespace Test { using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; @@ -235,5 +237,36 @@ public long SumMultiDimensionalLinq() return result; } + + [Benchmark] + public long SumSpan2DLocalVariableForEach() + { + var mdspan = _mdim.AsSpan2D(); + long result = 0; + + foreach (var v in mdspan) + { + result += v; + } + + return result; + } + + [Benchmark] + public long SumSpan2DLocalVariableIndex() + { + var mdspan = _mdim.AsSpan2D(); + var size = Size; + + long result = 0; + for (int i = 0; i < size; i++) + { + for (int j = 0; j < size; j++) + { + result += mdspan[i, j]; + } + } + return result; + } } } diff --git a/MultiDimensionalVsJaggedArray/Benchmark.csproj b/MultiDimensionalVsJaggedArray/Benchmark.csproj index f7cabd9d..3682d4c5 100644 --- a/MultiDimensionalVsJaggedArray/Benchmark.csproj +++ b/MultiDimensionalVsJaggedArray/Benchmark.csproj @@ -8,6 +8,7 @@ +