aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/microbenchmarks
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-09-01 10:09:30 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-09-01 10:09:30 -0700
commit6ba448fb551fa06f7a59dd34131bda6691a02a92 (patch)
tree69ff6ab42d10f0f828919aca4905120fd5ef3d61 /test/cpp/microbenchmarks
parent1cf09996a54966c4082929d63ceaa57b1bb0a4f1 (diff)
parentc928cfee2b94a99747f97ff8c5fb09277a1352b7 (diff)
Merge github.com:grpc/grpc into write_completion
Diffstat (limited to 'test/cpp/microbenchmarks')
-rw-r--r--test/cpp/microbenchmarks/bm_cq_multiple_threads.cc2
-rw-r--r--test/cpp/microbenchmarks/helpers.cc7
-rw-r--r--test/cpp/microbenchmarks/helpers.h3
3 files changed, 12 insertions, 0 deletions
diff --git a/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc b/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
index f109fe6251..9d71d3990d 100644
--- a/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
+++ b/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
@@ -38,6 +38,8 @@ struct grpc_pollset {
namespace grpc {
namespace testing {
+auto& force_library_initialization = Library::get();
+
static void* g_tag = (void*)(intptr_t)10; // Some random number
static grpc_completion_queue* g_cq;
static grpc_event_engine_vtable g_vtable;
diff --git a/test/cpp/microbenchmarks/helpers.cc b/test/cpp/microbenchmarks/helpers.cc
index 0c10d6c4ce..415d27445f 100644
--- a/test/cpp/microbenchmarks/helpers.cc
+++ b/test/cpp/microbenchmarks/helpers.cc
@@ -29,6 +29,13 @@ void TrackCounters::Finish(benchmark::State &state) {
}
void TrackCounters::AddToLabel(std::ostream &out, benchmark::State &state) {
+ grpc_stats_data stats_end;
+ grpc_stats_collect(&stats_end);
+ for (int i = 0; i < GRPC_STATS_COUNTER_COUNT; i++) {
+ out << " " << grpc_stats_counter_name[i] << "/iter:"
+ << ((double)(stats_end.counters[i] - stats_begin_.counters[i]) /
+ (double)state.iterations());
+ }
#ifdef GPR_LOW_LEVEL_COUNTERS
grpc_memory_counters counters_at_end = grpc_memory_counters_snapshot();
out << " locks/iter:" << ((double)(gpr_atm_no_barrier_load(&gpr_mu_locks) -
diff --git a/test/cpp/microbenchmarks/helpers.h b/test/cpp/microbenchmarks/helpers.h
index c81d95a4ea..07dd611709 100644
--- a/test/cpp/microbenchmarks/helpers.h
+++ b/test/cpp/microbenchmarks/helpers.h
@@ -23,6 +23,7 @@
extern "C" {
#include <grpc/support/port_platform.h>
+#include "src/core/lib/debug/stats.h"
#include "test/core/util/memory_counters.h"
}
@@ -62,10 +63,12 @@ extern "C" gpr_atm gpr_now_call_count;
class TrackCounters {
public:
+ TrackCounters() { grpc_stats_collect(&stats_begin_); }
virtual void Finish(benchmark::State& state);
virtual void AddToLabel(std::ostream& out, benchmark::State& state);
private:
+ grpc_stats_data stats_begin_;
#ifdef GPR_LOW_LEVEL_COUNTERS
const size_t mu_locks_at_start_ = gpr_atm_no_barrier_load(&gpr_mu_locks);
const size_t atm_cas_at_start_ =