diff --git a/main_benchmark.cpp b/main_benchmark.cpp index e45343d..75b72ba 100644 --- a/main_benchmark.cpp +++ b/main_benchmark.cpp @@ -1,49 +1,51 @@ /* -------------------------------------------------------------------------- */ #include /* -------------------------------------------------------------------------- */ #include #include #include /* -------------------------------------------------------------------------- */ using namespace akantu; -using stream_type = int; - class MyFixture : public benchmark::Fixture { + using stream_type = int; public: void SetUp(const ::benchmark::State &state) { - A.resize(state.range(0) / sizeof(stream_type)); - B.resize(state.range(0) / sizeof(stream_type)); + auto && size = state.range(0) * 1024 / sizeof(stream_type); + A.resize(size); + B.resize(size); auto view = enumerate(A, B); std::for_each(view.begin(), view.end(), [](auto &&data) { std::get<1>(data) = 2. * std::get<0>(data); std::get<2>(data) = 0.; }); } void TearDown(const ::benchmark::State & /*state*/) {} std::vector A; std::vector B; }; BENCHMARK_DEFINE_F(MyFixture, CopyZip)(benchmark::State &st) { auto view = zip(A, B); std::for_each(view.begin(), view.end(), [](auto &&data) { std::get<1>(data) = std::get<0>(data); }); for (auto _ : st) { benchmark::DoNotOptimize( std::for_each(view.begin(), view.end(), [](auto &&data) { std::get<1>(data) = std::get<0>(data); })); } - st.SetBytesProcessed(int64_t(st.iterations()) * int64_t(st.range(0))); + st.counters["size_kb"] = + A.size() * sizeof(typename decltype(A)::value_type) / 1024; + st.SetBytesProcessed(int64_t(st.iterations()) * A.size() * sizeof(typename decltype(A)::value_type)); } BENCHMARK_REGISTER_F(MyFixture, CopyZip) ->RangeMultiplier(2) - ->Range(1 << 10, 1 << 26); + ->Range(2, 1 << 16); BENCHMARK_MAIN();