32 std::optional<int> operator()() {
return std::nullopt; }
39 std::vector<std::vector<PrevectorJob>> vBatches(
BATCHES);
40 for (
auto &vChecks : vBatches) {
43 vChecks.emplace_back(insecure_rand);
53 std::vector<std::vector<PrevectorJob>> vBatches(
BATCHES);
54 for (
auto &vChecks : vBatches) {
55 control.
Add(std::move(vChecks));
61 queue.StopWorkerThreads();
BENCHMARK(CCheckQueueSpeedPrevectorJob)
static const int MIN_CORES
static const size_t BATCH_SIZE
static void CCheckQueueSpeedPrevectorJob(benchmark::Bench &bench)
static const size_t BATCHES
static const size_t QUEUE_BATCH_SIZE
RAII-style controller object for a CCheckQueue that guarantees the passed queue is finished before co...
std::optional< R > Complete()
void Add(std::vector< T > &&vChecks)
The verifications are represented by a type T, which must provide an operator(), returning an std::op...
Users of this module must hold an ECCVerifyHandle.
uint64_t randrange(uint64_t range) noexcept
Generate a random integer in the range [0..range).
Main entry point to nanobench's benchmarking facility.
ANKERL_NANOBENCH(NODISCARD) std Bench & batch(T b) noexcept
Sets the batch size.
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
Bench & unit(char const *unit)
Sets the operation unit.
ANKERL_NANOBENCH(NODISCARD) std Bench & minEpochIterations(uint64_t numIters) noexcept
Sets the minimum number of iterations each epoch should take.
Implements a drop-in replacement for std::vector<T> which stores up to N elements directly (without h...
static constexpr unsigned int STATIC_SIZE
void resize(size_type new_size)
void ECC_Start()
Initialize the elliptic curve support.
void ECC_Stop()
Deinitialize the elliptic curve support.
int GetNumCores()
Return the number of cores available on the current system.