bm_fullstack_unary_ping_pong.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2016 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 /* Benchmark gRPC end2end in various configurations */
20 
24 
25 namespace grpc {
26 namespace testing {
27 
28 /*******************************************************************************
29  * CONFIGURATIONS
30  */
31 
32 // Replace "benchmark::internal::Benchmark" with "::testing::Benchmark" to use
33 // internal microbenchmarking tooling
35  b->Args({0, 0});
36  for (int i = 1; i <= 128 * 1024 * 1024; i *= 8) {
37  b->Args({i, 0});
38  b->Args({0, i});
39  b->Args({i, i});
40  }
41 }
42 
43 BENCHMARK_TEMPLATE(BM_UnaryPingPong, TCP, NoOpMutator, NoOpMutator)
44  ->Apply(SweepSizesArgs);
45 BENCHMARK_TEMPLATE(BM_UnaryPingPong, MinTCP, NoOpMutator, NoOpMutator)
46  ->Apply(SweepSizesArgs);
47 BENCHMARK_TEMPLATE(BM_UnaryPingPong, UDS, NoOpMutator, NoOpMutator)
48  ->Args({0, 0});
49 BENCHMARK_TEMPLATE(BM_UnaryPingPong, MinUDS, NoOpMutator, NoOpMutator)
50  ->Args({0, 0});
51 BENCHMARK_TEMPLATE(BM_UnaryPingPong, InProcess, NoOpMutator, NoOpMutator)
52  ->Apply(SweepSizesArgs);
53 BENCHMARK_TEMPLATE(BM_UnaryPingPong, MinInProcess, NoOpMutator, NoOpMutator)
54  ->Apply(SweepSizesArgs);
55 BENCHMARK_TEMPLATE(BM_UnaryPingPong, SockPair, NoOpMutator, NoOpMutator)
56  ->Args({0, 0});
57 BENCHMARK_TEMPLATE(BM_UnaryPingPong, MinSockPair, NoOpMutator, NoOpMutator)
58  ->Args({0, 0});
59 BENCHMARK_TEMPLATE(BM_UnaryPingPong, InProcessCHTTP2, NoOpMutator, NoOpMutator)
60  ->Apply(SweepSizesArgs);
62  NoOpMutator)
63  ->Apply(SweepSizesArgs);
66  ->Args({0, 0});
69  ->Args({0, 0});
73  ->Args({0, 0});
76  ->Args({0, 0});
79  ->Args({0, 0});
83  ->Args({0, 0});
86  ->Args({0, 0});
89  ->Args({0, 0});
92  ->Args({0, 0});
95  ->Args({0, 0});
98  ->Args({0, 0});
101  ->Args({0, 0});
104  ->Args({0, 0});
107  ->Args({0, 0});
110  ->Args({0, 0});
113  ->Args({0, 0});
116  ->Args({0, 0});
119  ->Args({0, 0});
122  NoOpMutator)
123  ->Args({0, 0});
126  ->Args({0, 0});
129  ->Args({0, 0});
132  NoOpMutator)
133  ->Args({0, 0});
136  ->Args({0, 0});
139  ->Args({0, 0});
142  ->Args({0, 0});
145  ->Args({0, 0});
148  ->Args({0, 0});
151  ->Args({0, 0});
154  ->Args({0, 0});
157  ->Args({0, 0});
160  ->Args({0, 0});
163  ->Args({0, 0});
164 
165 } // namespace testing
166 } // namespace grpc
167 
168 // Some distros have RunSpecifiedBenchmarks under the benchmark namespace,
169 // and others do not. This allows us to support both modes.
170 namespace benchmark {
172 } // namespace benchmark
173 
174 int main(int argc, char** argv) {
175  grpc::testing::TestEnvironment env(&argc, argv);
176  LibraryInitializer libInit;
177  ::benchmark::Initialize(&argc, argv);
178  grpc::testing::InitTest(&argc, &argv, false);
180  return 0;
181 }
grpc::testing::InitTest
void InitTest(int *argc, char ***argv, bool remove_flags)
Definition: test_config_cc.cc:28
testing
Definition: aws_request_signer_test.cc:25
benchmark
Definition: bm_alarm.cc:55
generate.env
env
Definition: generate.py:37
grpc
Definition: grpcpp/alarm.h:33
grpc::testing::RandomAsciiMetadata
Definition: fullstack_context_mutators.h:80
grpc::testing::MinInProcessCHTTP2
MinStackize< InProcessCHTTP2 > MinInProcessCHTTP2
Definition: fullstack_fixtures.h:332
grpc::testing::MinInProcess
MinStackize< InProcess > MinInProcess
Definition: fullstack_fixtures.h:330
benchmark::RunTheBenchmarksNamespaced
void RunTheBenchmarksNamespaced()
Definition: bm_alarm.cc:56
grpc::testing::SweepSizesArgs
static void SweepSizesArgs(benchmark::internal::Benchmark *b)
Definition: bm_callback_unary_ping_pong.cc:32
grpc::testing::BENCHMARK_TEMPLATE
BENCHMARK_TEMPLATE(BM_CallbackBidiStreaming, InProcess, NoOpMutator, NoOpMutator) -> Apply(StreamingPingPongMsgSizeArgs)
main
int main(int argc, char **argv)
Definition: bm_fullstack_unary_ping_pong.cc:174
benchmark::RunSpecifiedBenchmarks
size_t RunSpecifiedBenchmarks()
Definition: benchmark/src/benchmark.cc:437
grpc::testing::MinSockPair
MinStackize< SockPair > MinSockPair
Definition: fullstack_fixtures.h:331
benchmark::Initialize
void Initialize(int *argc, char **argv)
Definition: benchmark/src/benchmark.cc:602
b
uint64_t b
Definition: abseil-cpp/absl/container/internal/layout_test.cc:53
fullstack_unary_ping_pong.h
benchmark::internal::Benchmark
Definition: benchmark/include/benchmark/benchmark.h:834
LibraryInitializer
Definition: helpers.h:33
test_config.h
UDS
@ UDS
Definition: grpc_security_constants.h:143
grpc::testing::BM_UnaryPingPong
static void BM_UnaryPingPong(benchmark::State &state)
Definition: fullstack_unary_ping_pong.h:43
grpc::testing::InProcess
Definition: fullstack_fixtures.h:154
grpc::testing::TestEnvironment
Definition: test/core/util/test_config.h:54
grpc::testing::MinTCP
MinStackize< TCP > MinTCP
Definition: fullstack_fixtures.h:328
grpc::testing::RandomBinaryMetadata
Definition: fullstack_context_mutators.h:59
test_config.h
grpc::testing::Client_AddMetadata
Definition: fullstack_context_mutators.h:101
grpc::testing::InProcessCHTTP2
Definition: fullstack_fixtures.h:296
grpc::testing::MinUDS
MinStackize< UDS > MinUDS
Definition: fullstack_fixtures.h:329
grpc::testing::NoOpMutator
Definition: fullstack_context_mutators.h:52
grpc::testing::Server_AddInitialMetadata
Definition: fullstack_context_mutators.h:111
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230


grpc
Author(s):
autogenerated on Fri May 16 2025 02:57:49