From 3147728d5bd8249eba454ffd5262793e8e30ffd4 Mon Sep 17 00:00:00 2001 From: mlemanczyk Date: Wed, 29 Oct 2025 04:53:13 +0100 Subject: [PATCH] Benchmarks for heuristic combined methods added --- .../PrimeTesterBenchmarks.cs | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/EvenPerfectBitScanner.Benchmarks/PrimeTesterBenchmarks.cs b/EvenPerfectBitScanner.Benchmarks/PrimeTesterBenchmarks.cs index 3a54d2a..f63e315 100644 --- a/EvenPerfectBitScanner.Benchmarks/PrimeTesterBenchmarks.cs +++ b/EvenPerfectBitScanner.Benchmarks/PrimeTesterBenchmarks.cs @@ -12,6 +12,7 @@ namespace EvenPerfectBitScanner.Benchmarks; [MemoryDiagnoser] public class PrimeTesterBenchmarks { + private static readonly HeuristicCombinedPrimeTester _heuristicCombinedTester = new(); private static readonly HeuristicPrimeTester _heuristicTester = new(); private ulong[] _candidates = []; @@ -71,6 +72,42 @@ public class PrimeTesterBenchmarks return primeCount; } + [Benchmark] + public int HeuristicCombinedGpu() + { + HeuristicCombinedPrimeTester tester = _heuristicCombinedTester; + ulong[] values = _candidates; + int primeCount = 0; + + for (int i = 0; i < values.Length; i++) + { + if (HeuristicCombinedPrimeTester.IsPrimeGpu(values[i])) + { + primeCount++; + } + } + + return primeCount; + } + + [Benchmark] + public int HeuristicCombinedCpu() + { + HeuristicCombinedPrimeTester tester = _heuristicCombinedTester; + ulong[] values = _candidates; + int primeCount = 0; + + for (int i = 0; i < values.Length; i++) + { + if (HeuristicCombinedPrimeTester.IsPrimeCpu(values[i])) + { + primeCount++; + } + } + + return primeCount; + } + private static readonly PrimeTester _nonHeuristicTester = new(); [Benchmark]