From dbd744470b2e1d1f438d57101d6d832c8a8ecae7 Mon Sep 17 00:00:00 2001 From: Tyler Neely Date: Mon, 1 Aug 2022 11:48:21 +0000 Subject: [PATCH] Add future benchmark --- tests/benchmark/CMakeLists.txt | 3 +++ tests/benchmark/future.cpp | 30 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 tests/benchmark/future.cpp diff --git a/tests/benchmark/CMakeLists.txt b/tests/benchmark/CMakeLists.txt index 4bf8374b0..31f0eebc0 100644 --- a/tests/benchmark/CMakeLists.txt +++ b/tests/benchmark/CMakeLists.txt @@ -62,3 +62,6 @@ target_link_libraries(${test_prefix}storage_v2_gc mg-storage-v2) add_benchmark(storage_v2_property_store.cpp) target_link_libraries(${test_prefix}storage_v2_property_store mg-storage-v2) + +add_benchmark(future.cpp) +target_link_libraries(${test_prefix}future mg-io) diff --git a/tests/benchmark/future.cpp b/tests/benchmark/future.cpp new file mode 100644 index 000000000..abbe3fb98 --- /dev/null +++ b/tests/benchmark/future.cpp @@ -0,0 +1,30 @@ +// Copyright 2022 Memgraph Ltd. +// +// Use of this software is governed by the Business Source License +// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source +// License, and you may not use this file except in compliance with the Business Source License. +// +// As of the Change Date specified in that file, in accordance with +// the Business Source License, use of this software will be governed +// by the Apache License, Version 2.0, included in the file +// licenses/APL.txt. + +#include + +#include "io/future.hpp" + +static void FuturePairFillWait(benchmark::State &state) { + uint64_t counter = 0; + while (state.KeepRunning()) { + auto [future, promise] = memgraph::io::FuturePromisePair(); + promise.Fill(1); + std::move(future).Wait(); + + ++counter; + } + state.SetItemsProcessed(counter); +} + +BENCHMARK(FuturePairFillWait)->Unit(benchmark::kNanosecond)->UseRealTime(); + +BENCHMARK_MAIN();