aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/cpp/microbenchmarks
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-09-01 10:30:11 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-09-01 10:30:11 -0700
commitee090ec9759fdef474a9a58d7c816676b9bfe6f1 (patch)
tree96d6eed3791596180f93831205dc048d1e8ec47b /test/cpp/microbenchmarks
parent0f2f4eea4bdc32c7e229feba1d8867d4b6628185 (diff)
parentb2b9a0ff7eacc84335b800e31b13a7607acf614b (diff)
Merge github.com:grpc/grpc into wc
Diffstat (limited to 'test/cpp/microbenchmarks')
-rw-r--r--test/cpp/microbenchmarks/BUILD9
-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
4 files changed, 14 insertions, 7 deletions
diff --git a/test/cpp/microbenchmarks/BUILD b/test/cpp/microbenchmarks/BUILD
index fc0294da56..83b91e2ce9 100644
--- a/test/cpp/microbenchmarks/BUILD
+++ b/test/cpp/microbenchmarks/BUILD
@@ -14,14 +14,9 @@
licenses(["notice"]) # Apache v2
-load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_cc_library", "grpc_cc_binary")
+load("//bazel:grpc_build_system.bzl", "grpc_cc_test", "grpc_cc_library", "grpc_cc_binary", "grpc_package")
-package(
- features = [
- "-layering_check",
- "-parse_headers",
- ],
-)
+grpc_package(name = "test/cpp/microbenchmarks")
grpc_cc_test(
name = "noop-benchmark",
diff --git a/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc b/test/cpp/microbenchmarks/bm_cq_multiple_threads.cc
index b263b80671..ca594c833b 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_ =