aboutsummaryrefslogtreecommitdiff
path: root/src/bench/prevector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bench/prevector.cpp')
-rw-r--r--src/bench/prevector.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/bench/prevector.cpp b/src/bench/prevector.cpp
index 59c4af086e..2524e215e4 100644
--- a/src/bench/prevector.cpp
+++ b/src/bench/prevector.cpp
@@ -80,6 +80,30 @@ static void PrevectorDeserialize(benchmark::Bench& bench)
});
}
+template <typename T>
+static void PrevectorFillVectorDirect(benchmark::Bench& bench)
+{
+ bench.run([&] {
+ std::vector<prevector<28, T>> vec;
+ for (size_t i = 0; i < 260; ++i) {
+ vec.emplace_back();
+ }
+ });
+}
+
+
+template <typename T>
+static void PrevectorFillVectorIndirect(benchmark::Bench& bench)
+{
+ bench.run([&] {
+ std::vector<prevector<28, T>> vec;
+ for (size_t i = 0; i < 260; ++i) {
+ // force allocation
+ vec.emplace_back(29, T{});
+ }
+ });
+}
+
#define PREVECTOR_TEST(name) \
static void Prevector##name##Nontrivial(benchmark::Bench& bench) \
{ \
@@ -96,3 +120,5 @@ PREVECTOR_TEST(Clear)
PREVECTOR_TEST(Destructor)
PREVECTOR_TEST(Resize)
PREVECTOR_TEST(Deserialize)
+PREVECTOR_TEST(FillVectorDirect)
+PREVECTOR_TEST(FillVectorIndirect)