From 95393cf5304ba0a5a1eb3e3c9720c25f70ac519c Mon Sep 17 00:00:00 2001 From: Vizerai Date: Thu, 10 May 2018 13:26:23 -0700 Subject: Fixed opencensus benchmark to be compliant with grpc benchmarks. --- test/cpp/ext/filters/census/BUILD | 13 --- .../ext/filters/census/grpc_plugin_benchmark.cc | 125 --------------------- 2 files changed, 138 deletions(-) delete mode 100644 test/cpp/ext/filters/census/grpc_plugin_benchmark.cc (limited to 'test/cpp/ext') diff --git a/test/cpp/ext/filters/census/BUILD b/test/cpp/ext/filters/census/BUILD index d6968d671b..6567dc667a 100644 --- a/test/cpp/ext/filters/census/BUILD +++ b/test/cpp/ext/filters/census/BUILD @@ -40,16 +40,3 @@ grpc_cc_test( "//test/cpp/util:test_config", ], ) - -grpc_cc_test( - name = "grpc_opencensus_plugin_benchmark", - srcs = ["grpc_plugin_benchmark.cc"], - language = "C++", - deps = [ - "//:grpc_opencensus_plugin", - "//src/proto/grpc/testing:echo_proto", - ], - external_deps = [ - "benchmark", - ], -) diff --git a/test/cpp/ext/filters/census/grpc_plugin_benchmark.cc b/test/cpp/ext/filters/census/grpc_plugin_benchmark.cc deleted file mode 100644 index 1f48f88710..0000000000 --- a/test/cpp/ext/filters/census/grpc_plugin_benchmark.cc +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -#include -#include -#include // NOLINT - -#include "absl/base/call_once.h" -#include "absl/strings/str_cat.h" -#include "benchmark/benchmark.h" -#include "include/grpc++/grpc++.h" -#include "opencensus/stats/stats.h" -#include "src/cpp/ext/filters/census/grpc_plugin.h" -#include "src/proto/grpc/testing/echo.grpc.pb.h" -#include "test/cpp/microbenchmarks/helpers.h" - -namespace grpc { -namespace { - -absl::once_flag once; -void RegisterOnce() { absl::call_once(once, RegisterOpenCensusPlugin); } - -class EchoServer final : public testing::EchoTestService::Service { - ::grpc::Status Echo(::grpc::ServerContext* context, - const testing::EchoRequest* request, - testing::EchoResponse* response) override { - if (request->param().expected_error().code() == 0) { - response->set_message(request->message()); - return ::grpc::Status::OK; - } else { - return ::grpc::Status(static_cast<::grpc::StatusCode>( - request->param().expected_error().code()), - ""); - } - } -}; - -// An EchoServerThread object creates an EchoServer on a separate thread and -// shuts down the server and thread when it goes out of scope. -class EchoServerThread final { - public: - EchoServerThread() { - ::grpc::ServerBuilder builder; - int port; - builder.AddListeningPort("[::]:0", ::grpc::InsecureServerCredentials(), - &port); - builder.RegisterService(&service_); - server_ = builder.BuildAndStart(); - if (server_ == nullptr || port == 0) { - std::abort(); - } - server_address_ = absl::StrCat("[::]:", port); - server_thread_ = std::thread(&EchoServerThread::RunServerLoop, this); - } - - ~EchoServerThread() { - server_->Shutdown(); - server_thread_.join(); - } - - const std::string& address() { return server_address_; } - - private: - void RunServerLoop() { server_->Wait(); } - - std::string server_address_; - EchoServer service_; - std::unique_ptr server_; - std::thread server_thread_; -}; - -void BM_E2eLatencyCensusDisabled(benchmark::State& state) { - EchoServerThread server; - std::unique_ptr stub = - testing::EchoTestService::NewStub(::grpc::CreateChannel( - server.address(), ::grpc::InsecureChannelCredentials())); - - testing::EchoResponse response; - for (auto _ : state) { - testing::EchoRequest request; - ::grpc::ClientContext context; - ::grpc::Status status = stub->Echo(&context, request, &response); - } -} -BENCHMARK(BM_E2eLatencyCensusDisabled); - -void BM_E2eLatencyCensusEnabled(benchmark::State& state) { - RegisterOnce(); - // This we can safely repeat, and doing so clears accumulated data to avoid - // initialization costs varying between runs. - RegisterGrpcViewsForExport(); - - EchoServerThread server; - std::unique_ptr stub = - testing::EchoTestService::NewStub(::grpc::CreateChannel( - server.address(), ::grpc::InsecureChannelCredentials())); - - testing::EchoResponse response; - for (auto _ : state) { - testing::EchoRequest request; - ::grpc::ClientContext context; - ::grpc::Status status = stub->Echo(&context, request, &response); - } -} -BENCHMARK(BM_E2eLatencyCensusEnabled); - -} // namespace -} // namespace grpc - -BENCHMARK_MAIN(); -- cgit v1.2.3