Skip to content

Commit 893b904

Browse files
committed
Fix bug in insertion benchmarks
1 parent 93d9a3d commit 893b904

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

libcxx/test/benchmarks/containers/container_benchmarks.h

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -242,16 +242,15 @@ void BM_insert_begin_input_iter_with_reserve_almost_no_realloc(benchmark::State&
242242

243243
const int overflow = size / 10; // 10% of elements won't fit in the vector when we insert
244244
Container c;
245-
c.reserve(size);
246-
std::generate_n(std::back_inserter(c), overflow, gen);
247-
248245
for (auto _ : st) {
249-
c.insert(c.begin(), cpp17_input_iterator(first), cpp17_input_iterator(last));
250-
DoNotOptimizeData(c);
251-
252246
st.PauseTiming();
253-
c.erase(c.begin() + overflow, c.end()); // avoid growing indefinitely
247+
c = Container();
248+
c.reserve(size);
249+
std::generate_n(std::back_inserter(c), overflow, gen);
254250
st.ResumeTiming();
251+
252+
c.insert(c.begin(), cpp17_input_iterator(first), cpp17_input_iterator(last));
253+
DoNotOptimizeData(c);
255254
}
256255
}
257256

@@ -270,16 +269,15 @@ void BM_insert_begin_input_iter_with_reserve_near_full(benchmark::State& st, Gen
270269

271270
const int overflow = 9 * (size / 10); // 90% of elements won't fit in the vector when we insert
272271
Container c;
273-
c.reserve(size);
274-
std::generate_n(std::back_inserter(c), overflow, gen);
275-
276272
for (auto _ : st) {
277-
c.insert(c.begin(), cpp17_input_iterator(first), cpp17_input_iterator(last));
278-
DoNotOptimizeData(c);
279-
280273
st.PauseTiming();
281-
c.erase(c.begin() + overflow, c.end()); // avoid growing indefinitely
274+
c = Container();
275+
c.reserve(size);
276+
std::generate_n(std::back_inserter(c), overflow, gen);
282277
st.ResumeTiming();
278+
279+
c.insert(c.begin(), cpp17_input_iterator(first), cpp17_input_iterator(last));
280+
DoNotOptimizeData(c);
283281
}
284282
}
285283

0 commit comments

Comments
 (0)