summaryrefslogtreecommitdiffstats
path: root/benchmarks/string_insertion_tput.cpp
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2024-05-14 16:00:17 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2024-05-14 16:00:54 -0400
commit764a9c41cad220513523afb6b610b2bdf74e5476 (patch)
tree13abef64d422c7f5016a9b64aaa64265a01209ba /benchmarks/string_insertion_tput.cpp
parentc611e8e56ebe72e09127fff4fb14a08dc3fcb698 (diff)
downloaddynamic-extension-764a9c41cad220513523afb6b610b2bdf74e5476.tar.gz
Poplar Trie: updated benchmark to standard format
Diffstat (limited to 'benchmarks/string_insertion_tput.cpp')
-rw-r--r--benchmarks/string_insertion_tput.cpp57
1 files changed, 27 insertions, 30 deletions
diff --git a/benchmarks/string_insertion_tput.cpp b/benchmarks/string_insertion_tput.cpp
index 8fa7f44..c439cb3 100644
--- a/benchmarks/string_insertion_tput.cpp
+++ b/benchmarks/string_insertion_tput.cpp
@@ -6,6 +6,7 @@
#include <fstream>
#include <sstream>
+#include <vector>
#include "framework/DynamicExtension.h"
#include "shard/FSTrie.h"
@@ -21,7 +22,6 @@ typedef de::FSTrie<Rec> Trie;
typedef de::pl::Query<Rec, Trie> Q;
typedef de::DynamicExtension<Rec, Trie, Q, de::LayoutPolicy::TEIRING, de::DeletePolicy::TAGGING, de::SerialScheduler> Ext;
-std::vector<std::unique_ptr<char[]>> strings;
void insert_thread(int64_t start, int64_t end, Ext *extension) {
for (uint64_t i=start; i<end; i++) {
@@ -32,7 +32,8 @@ void insert_thread(int64_t start, int64_t end, Ext *extension) {
}
}
-void read_data(std::string fname, size_t n=10000000) {
+std::vector<std::unique_ptr<char[]>>read_strings(std::string fname, size_t n=10000000) {
+ std::vector<std::unique_ptr<char[]>> strings;
strings.reserve(n);
std::fstream file;
@@ -45,6 +46,8 @@ void read_data(std::string fname, size_t n=10000000) {
i++;
psudb::progress_update((double) i / (double) n, "Reading file:");
}
+
+ return strings;
}
void usage(char *name) {
@@ -74,44 +77,38 @@ int main(int argc, char **argv) {
for (auto &sf : scale_factors) {
for (auto &bf_sz : buffer_sizes) {
+ auto extension = new Ext(bf_sz, bf_sz, sf);
- auto extension = new Ext(bf_sz, bf_sz, sf);
-
- TIMER_INIT();
- TIMER_START();
- insert_thread(0, strings.size(), extension);
- TIMER_STOP();
-
- auto total_time = TIMER_RESULT();
+ TIMER_INIT();
+ TIMER_START();
+ insert_thread(0, strings.size(), extension);
+ TIMER_STOP();
- size_t m = 100;
- TIMER_START();
- for (size_t i=0; i<m; i++) {
- size_t j = rand() % strings.size();
- de::pl::Parms<Rec> parms = {strings[j].get()};
+ auto total_time = TIMER_RESULT();
- auto res = extension->query(&parms);
- auto ans = res.get();
-
- if (ans[0].value != j) {
- fprintf(stderr, "ext:\t%ld %ld %s\n", ans[0].value, j, strings[j].get());
- }
+ size_t m = 100;
+ TIMER_START();
+ for (size_t i=0; i<m; i++) {
+ size_t j = rand() % strings.size();
+ de::pl::Parms<Rec> parms = {strings[j].get()};
- assert(ans[0].value == j);
- }
- TIMER_STOP();
+ auto res = extension->query(&parms);
+ auto ans = res.get();
+ }
+ TIMER_STOP();
- auto query_time = TIMER_RESULT();
-
- double i_tput = (double) n / (double) total_time * 1e9;
- size_t q_lat = query_time / m;
+ auto query_time = TIMER_RESULT();
+
+ double i_tput = (double) n / (double) total_time * 1e9;
+ size_t q_lat = query_time / m;
fprintf(stdout, "%ld\t%ld\t%ld\t%lf\t%ld\t%ld\n", extension->get_record_count(),
bf_sz, sf, i_tput, q_lat, extension->get_memory_usage());
- delete extension;
+ delete extension;
- }}
+ }
+ }
fflush(stderr);
}