summaryrefslogtreecommitdiffhomepage
path: root/benchmarks
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-01-20 20:32:14 +0100
committerTyge Løvset <[email protected]>2021-01-20 20:32:14 +0100
commit488df10580fdb2af78a65df12595ea3e5de9404c (patch)
treec7aad6c9472e134096ebf832467fc6ef5be9033e /benchmarks
parent03303cddb4181b5679b17002d1dbf619d64a556f (diff)
downloadSTC-modified-488df10580fdb2af78a65df12595ea3e5de9404c.tar.gz
STC-modified-488df10580fdb2af78a65df12595ea3e5de9404c.zip
Update picobench.
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/cmap_benchmark2.cpp19
-rw-r--r--benchmarks/picobench.hpp30
2 files changed, 26 insertions, 23 deletions
diff --git a/benchmarks/cmap_benchmark2.cpp b/benchmarks/cmap_benchmark2.cpp
index 3eaff7a2..33f5c675 100644
--- a/benchmarks/cmap_benchmark2.cpp
+++ b/benchmarks/cmap_benchmark2.cpp
@@ -12,8 +12,7 @@
#define PICOBENCH_IMPLEMENT_WITH_MAIN
#include "picobench.hpp"
-PICOBENCH_SUITE("Map");
-enum {N1 = 10000000, S1 = 1, MaxLoadFactor100 = 80};
+enum {N1 = 4000000, S1 = 1, MaxLoadFactor100 = 80};
uint64_t seed = time(NULL);
static inline uint32_t hash32(const void* data, size_t len) {
@@ -45,6 +44,8 @@ using_cmap(i, int, int, c_default_equals, hash32);
using_cmap(x, uint64_t, uint64_t, c_default_equals, hash64);
using_cmap_strkey(s, cstr, cstr_del, cstr_clone);
+PICOBENCH_SUITE("Map1");
+
template <class MapInt>
static void ctor_and_ins_one_i(picobench::state& s)
{
@@ -74,7 +75,7 @@ static void ctor_and_ins_one_cmap_i(picobench::state& s)
}
#define P samples(S1).iterations({N1})
-PICOBENCH(ctor_and_ins_one_i<umap_i>).P.baseline();
+PICOBENCH(ctor_and_ins_one_i<umap_i>).P;
PICOBENCH(ctor_and_ins_one_i<bmap_i>).P;
PICOBENCH(ctor_and_ins_one_i<fmap_i>).P;
PICOBENCH(ctor_and_ins_one_i<hmap_i>).P;
@@ -83,6 +84,7 @@ PICOBENCH(ctor_and_ins_one_i<rmap_i>).P;
PICOBENCH(ctor_and_ins_one_cmap_i).P;
#undef P
+PICOBENCH_SUITE("Map2");
template <class MapInt>
static void ins_and_erase_i(picobench::state& s)
@@ -126,7 +128,7 @@ static void ins_and_erase_cmap_i(picobench::state& s)
}
#define P samples(S1).iterations({N1/4})
-PICOBENCH(ins_and_erase_i<umap_i>).P.baseline();
+PICOBENCH(ins_and_erase_i<umap_i>).P;
PICOBENCH(ins_and_erase_i<bmap_i>).P;
PICOBENCH(ins_and_erase_i<fmap_i>).P;
PICOBENCH(ins_and_erase_i<hmap_i>).P;
@@ -135,6 +137,7 @@ PICOBENCH(ins_and_erase_i<rmap_i>).P;
PICOBENCH(ins_and_erase_cmap_i).P;
#undef P
+PICOBENCH_SUITE("Map3");
template <class MapInt>
static void ins_and_access_i(picobench::state& s)
@@ -167,7 +170,7 @@ static void ins_and_access_cmap_i(picobench::state& s)
}
#define P samples(S1).iterations({N1, N1, N1, N1}).args({18, 23, 25, 31})
-PICOBENCH(ins_and_access_i<umap_i>).P.baseline();
+PICOBENCH(ins_and_access_i<umap_i>).P;
PICOBENCH(ins_and_access_i<bmap_i>).P;
PICOBENCH(ins_and_access_i<fmap_i>).P;
PICOBENCH(ins_and_access_i<hmap_i>).P;
@@ -176,6 +179,7 @@ PICOBENCH(ins_and_access_i<rmap_i>).P;
PICOBENCH(ins_and_access_cmap_i).P;
#undef P
+PICOBENCH_SUITE("Map4");
static void randomize(char* str, size_t len) {
union {uint64_t i; char c[8];} r = {.i = stc64_random()};
@@ -231,7 +235,7 @@ static void ins_and_access_cmap_s(picobench::state& s)
}
#define P samples(S1).iterations({N1/5, N1/5, N1/5, N1/10, N1/40}).args({13, 7, 8, 100, 1000})
-PICOBENCH(ins_and_access_s<umap_s>).P.baseline();
+PICOBENCH(ins_and_access_s<umap_s>).P;
PICOBENCH(ins_and_access_s<bmap_s>).P;
PICOBENCH(ins_and_access_s<fmap_s>).P;
PICOBENCH(ins_and_access_s<hmap_s>).P;
@@ -240,6 +244,7 @@ PICOBENCH(ins_and_access_s<rmap_s>).P;
PICOBENCH(ins_and_access_cmap_s).P;
#undef P
+PICOBENCH_SUITE("Map5");
template <class MapX>
static void iterate_x(picobench::state& s)
@@ -303,7 +308,7 @@ static void iterate_cmap_x(picobench::state& s)
#define P samples(S1).iterations({N1/20}).args({12})
-PICOBENCH(iterate_x<umap_x>).P.baseline();
+PICOBENCH(iterate_x<umap_x>).P;
PICOBENCH(iterate_x<bmap_x>).P;
PICOBENCH(iterate_x<fmap_x>).P;
PICOBENCH(iterate_x<hmap_x>).P;
diff --git a/benchmarks/picobench.hpp b/benchmarks/picobench.hpp
index 271a4412..7c8b55b7 100644
--- a/benchmarks/picobench.hpp
+++ b/benchmarks/picobench.hpp
@@ -28,7 +28,7 @@
//
// VERSION HISTORY
//
-// 2.xx (2021-01-19) * Added user data per iter, changed text output.
+// 2.x1 (2021-01-19) * Added user data per iter, changed text output.
// 2.01 (2019-03-03) * Fixed android build when binding to a signle core
// 2.00 (2018-10-30) * Breaking change! runner::run_benchmarks doesn't return
// a report anymore. The report is generated by
@@ -113,8 +113,8 @@
# include <functional>
#endif
-#define PICOBENCH_VERSION 2.01
-#define PICOBENCH_VERSION_STR "2.01"
+#define PICOBENCH_VERSION 2.x1
+#define PICOBENCH_VERSION_STR "2.x1"
#if defined(PICOBENCH_DEBUG)
# include <cassert>
@@ -165,8 +165,8 @@ public:
size_t iterations() const { return _iterations; }
- int64_t duration_ns() const { return _duration_ns; }
- void add_custom_duration(int64_t duration_ns) { _duration_ns += duration_ns; }
+ uint64_t duration_ns() const { return _duration_ns; }
+ void add_custom_duration(uint64_t duration_ns) { _duration_ns += duration_ns; }
udata_t user_data() const { return _user_data; }
udata_t arg() const { return _arg; }
@@ -251,7 +251,7 @@ public:
private:
high_res_clock::time_point _start;
- int64_t _duration_ns = 0;
+ uint64_t _duration_ns = 0;
udata_t _user_data;
udata_t _arg;
size_t _iterations;
@@ -386,7 +386,7 @@ public:
udata_t user_data;
udata_t arg;
int samples; // number of samples taken
- int64_t total_time_ns; // fastest sample!!!
+ uint64_t total_time_ns; // fastest sample!!!
result_t result; // result of fastest sample
};
struct benchmark
@@ -653,7 +653,7 @@ public:
bool is_baseline;
udata_t user_data;
udata_t arg;
- int64_t total_time_ns; // fastest sample!!!
+ uint64_t total_time_ns; // fastest sample!!!
result_t result; // result of fastest sample
};
using problem_space_view_map = std::map<std::pair<size_t, udata_t>,
@@ -970,8 +970,6 @@ public:
{
auto i = benchmarks.begin() + long(rnd() % benchmarks.size());
auto& b = *i;
- //std::cerr << "run: " << b->_name << ": " << b->_istate->iterations()
- // << " (" << b->_istate->arg() << ")\n";
std::cerr << '.';
b->_proc(*b->_istate);
@@ -1147,8 +1145,8 @@ public:
_opts.emplace_back("-output=", "<filename>",
"Sets output filename or `stdout`",
&runner::cmd_output);
- _opts.emplace_back("-compare-results", "",
- "Compare benchmark results",
+ _opts.emplace_back("-no-compare-results", "",
+ "Doesn't compare benchmark results",
&runner::cmd_compare_results);
_opts.emplace_back("-no-run", "",
"Doesn't run benchmarks",
@@ -1239,8 +1237,8 @@ private:
mutable error_t _error = no_error;
bool _should_run = true;
- bool _compare_results_across_samples = false;
- bool _compare_results_across_benchmarks = false;
+ bool _compare_results_across_samples = true;
+ bool _compare_results_across_benchmarks = true;
report_output_format _output_format = report_output_format::all;
const char* _output_file = nullptr; // nullptr means stdout
@@ -1384,8 +1382,8 @@ private:
bool cmd_compare_results(const char* line)
{
if (*line) return false;
- _compare_results_across_samples = true;
- _compare_results_across_benchmarks = true;
+ _compare_results_across_samples = false;
+ _compare_results_across_benchmarks = false;
return true;
}
};