diff options
| author | Tyge Løvset <[email protected]> | 2021-01-20 20:32:14 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-01-20 20:32:14 +0100 |
| commit | 488df10580fdb2af78a65df12595ea3e5de9404c (patch) | |
| tree | c7aad6c9472e134096ebf832467fc6ef5be9033e /benchmarks | |
| parent | 03303cddb4181b5679b17002d1dbf619d64a556f (diff) | |
| download | STC-modified-488df10580fdb2af78a65df12595ea3e5de9404c.tar.gz STC-modified-488df10580fdb2af78a65df12595ea3e5de9404c.zip | |
Update picobench.
Diffstat (limited to 'benchmarks')
| -rw-r--r-- | benchmarks/cmap_benchmark2.cpp | 19 | ||||
| -rw-r--r-- | benchmarks/picobench.hpp | 30 |
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; } }; |
