32 #include <benchmark/benchmark.h> 33 #include <unordered_set> 35 #include "DGtal/base/Common.h" 36 #include "DGtal/kernel/domains/CDomainArchetype.h" 37 #include "DGtal/kernel/sets/DigitalSetBySTLVector.h" 38 #include "DGtal/kernel/sets/DigitalSetBySTLSet.h" 39 #include "DGtal/kernel/sets/DigitalSetByAssociativeContainer.h" 40 #include "DGtal/kernel/sets/DigitalSetFromMap.h" 42 #include "DGtal/kernel/PointHashFunctions.h" 44 #include "DGtal/helpers/StdDefs.h" 51 using namespace DGtal;
65 while (state.KeepRunning())
69 typename Q::Point().diagonal(state.range_x()));
85 Q myset(
typename Q::Domain( Q::Point::diagonal(0), Q::Point::diagonal(2048) ));
86 while (state.KeepRunning())
90 for(
unsigned int j=0; j < Q::Point::dimension; j++)
109 Q myset(
typename Q::Domain( Q::Point::diagonal(0), Q::Point::diagonal(2048) ));
110 for(
unsigned int i= 0; i < state.range_x(); ++i)
113 for(
unsigned int j=0; j < Q::Point::dimension; j++)
114 p[j] = rand() % 2048;
117 while (state.KeepRunning())
119 for(
typename Q::ConstIterator it= myset.begin(), itend=myset.end(); it != itend;
121 benchmark::DoNotOptimize(it);
135 int main(
int argc,
const char*argv[] )
137 benchmark::Initialize(&argc, argv);
139 benchmark::RunSpecifiedBenchmarks();
HyperRectDomain< Space > Domain
DGtal::DigitalSetByAssociativeContainer< Z2i::Domain, std::unordered_set< Z2i::Point > > FromUnordered
int main(int argc, const char *argv[])
MyDigitalSurface::ConstIterator ConstIterator
DGtal::DigitalSetBySTLVector< Z2i::Domain > FromVector
DGtal::DigitalSetBySTLSet< Z2i::Domain > FromSet
BENCHMARK_TEMPLATE(BM_Constructor, FromVector) -> Range(1<< 3, 1<< 8)
static void BM_Constructor(benchmark::State &state)
static void BM_insert(benchmark::State &state)
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::DigitalSetByAssociativeContainer< Z3i::Domain, std::unordered_set< Z3i::Point > > FromUnordered3
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
DGtal::DigitalSetBySTLVector< Z3i::Domain > FromVector3
Aim: Realizes the concept CDigitalSet by using the STL container std::vector.
Aim: A container class for storing sets of digital points within some given domain.
static void BM_iterate(benchmark::State &state)
DGtal::DigitalSetBySTLSet< Z3i::Domain > FromSet3