Skip to content

Commit 6665998

Browse files
committed
Add STL comparison benchmarks for set_bit
1 parent 6a1a792 commit 6665998

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

bitvector_benchmark.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,50 @@ static void BM_Std_Access(benchmark::State& state) {
7272
}
7373
}
7474

75+
static void BM_Bowen_SetBit(benchmark::State& state) {
76+
size_t n = state.range(0);
77+
for (auto _ : state) {
78+
bitvector<> bv(n);
79+
for (size_t i=0;i<n;++i) {
80+
bv.set_bit(i, static_cast<bool>(i & 1));
81+
}
82+
benchmark::ClobberMemory();
83+
}
84+
}
85+
86+
static void BM_Std_SetBit(benchmark::State& state) {
87+
size_t n = state.range(0);
88+
for (auto _ : state) {
89+
std::vector<bool> bv(n);
90+
for (size_t i=0;i<n;++i) {
91+
bv[i] = static_cast<bool>(i & 1);
92+
}
93+
benchmark::ClobberMemory();
94+
}
95+
}
96+
97+
static void BM_Bowen_SetBitTrueUnsafe(benchmark::State& state) {
98+
size_t n = state.range(0);
99+
for (auto _ : state) {
100+
bitvector<> bv(n);
101+
for (size_t i=0;i<n;++i) {
102+
bv.set_bit_true_unsafe(i);
103+
}
104+
benchmark::ClobberMemory();
105+
}
106+
}
107+
108+
static void BM_Std_SetBitTrueUnsafe(benchmark::State& state) {
109+
size_t n = state.range(0);
110+
for (auto _ : state) {
111+
std::vector<bool> bv(n);
112+
for (size_t i=0;i<n;++i) {
113+
bv[i] = true;
114+
}
115+
benchmark::ClobberMemory();
116+
}
117+
}
118+
75119

76120
static void BM_Bowen_SetBitTrue6(benchmark::State& state) {
77121
size_t n = state.range(0);
@@ -149,6 +193,10 @@ BENCHMARK(BM_Bowen_PushBack)->Arg(1<<20)->MinTime(5.0);
149193
BENCHMARK(BM_Std_PushBack)->Arg(1<<20)->MinTime(5.0);
150194
BENCHMARK(BM_Bowen_Access)->Arg(1<<20)->MinTime(5.0);
151195
BENCHMARK(BM_Std_Access)->Arg(1<<20)->MinTime(5.0);
196+
BENCHMARK(BM_Bowen_SetBit)->Arg(1<<20)->MinTime(5.0);
197+
BENCHMARK(BM_Std_SetBit)->Arg(1<<20)->MinTime(5.0);
198+
BENCHMARK(BM_Bowen_SetBitTrueUnsafe)->Arg(1<<20)->MinTime(5.0);
199+
BENCHMARK(BM_Std_SetBitTrueUnsafe)->Arg(1<<20)->MinTime(5.0);
152200
BENCHMARK(BM_Bowen_SetBitTrue6)->Arg(1<<20)->MinTime(5.0);
153201
BENCHMARK(BM_Std_SetBitTrue6)->Arg(1<<20)->MinTime(5.0);
154202
BENCHMARK(BM_Bowen_QSetBitTrue6V2)->Arg(1<<20)->MinTime(5.0);

0 commit comments

Comments
 (0)