From 760af84072408ba53d009e868fccc25fb186d40c Mon Sep 17 00:00:00 2001
From: Martin Ankerl <Martin.Ankerl@gmail.com>
Date: Wed, 20 Dec 2017 19:53:28 +0100
Subject: [PATCH] Removed CCheckQueueSpeed benchmark

This benchmark's runtime was rather unpredictive on different machines, not really a useful benchmark.
---
 src/bench/checkqueue.cpp | 41 ----------------------------------------
 1 file changed, 41 deletions(-)

diff --git a/src/bench/checkqueue.cpp b/src/bench/checkqueue.cpp
index e79c98679..4d41e28db 100644
--- a/src/bench/checkqueue.cpp
+++ b/src/bench/checkqueue.cpp
@@ -12,51 +12,11 @@
 #include <random.h>
 
 
-// This Benchmark tests the CheckQueue with the lightest
-// weight Checks, so it should make any lock contention
-// particularly visible
 static const int MIN_CORES = 2;
 static const size_t BATCHES = 101;
 static const size_t BATCH_SIZE = 30;
 static const int PREVECTOR_SIZE = 28;
 static const unsigned int QUEUE_BATCH_SIZE = 128;
-static void CCheckQueueSpeed(benchmark::State& state)
-{
-    struct FakeJobNoWork {
-        bool operator()()
-        {
-            return true;
-        }
-        void swap(FakeJobNoWork& x){};
-    };
-    CCheckQueue<FakeJobNoWork> queue {QUEUE_BATCH_SIZE};
-    boost::thread_group tg;
-    for (auto x = 0; x < std::max(MIN_CORES, GetNumCores()); ++x) {
-       tg.create_thread([&]{queue.Thread();});
-    }
-    while (state.KeepRunning()) {
-        CCheckQueueControl<FakeJobNoWork> control(&queue);
-
-        // We call Add a number of times to simulate the behavior of adding
-        // a block of transactions at once.
-
-        std::vector<std::vector<FakeJobNoWork>> vBatches(BATCHES);
-        for (auto& vChecks : vBatches) {
-            vChecks.resize(BATCH_SIZE);
-        }
-        for (auto& vChecks : vBatches) {
-            // We can't make vChecks in the inner loop because we want to measure
-            // the cost of getting the memory to each thread and we might get the same
-            // memory
-            control.Add(vChecks);
-        }
-        // control waits for completion by RAII, but
-        // it is done explicitly here for clarity
-        control.Wait();
-    }
-    tg.interrupt_all();
-    tg.join_all();
-}
 
 // This Benchmark tests the CheckQueue with a slightly realistic workload,
 // where checks all contain a prevector that is indirect 50% of the time
@@ -99,5 +59,4 @@ static void CCheckQueueSpeedPrevectorJob(benchmark::State& state)
     tg.interrupt_all();
     tg.join_all();
 }
-BENCHMARK(CCheckQueueSpeed, 29000);
 BENCHMARK(CCheckQueueSpeedPrevectorJob, 1400);