bm_fullstack_streaming_pump.cc 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. /* Benchmark gRPC end2end in various configurations */
  19. #include "test/core/util/test_config.h"
  20. #include "test/cpp/microbenchmarks/fullstack_streaming_pump.h"
  21. #include "test/cpp/util/test_config.h"
  22. namespace grpc {
  23. namespace testing {
  24. /*******************************************************************************
  25. * CONFIGURATIONS
  26. */
  27. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, TCP)
  28. ->Range(0, 128 * 1024 * 1024);
  29. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, UDS)
  30. ->Range(0, 128 * 1024 * 1024);
  31. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, InProcess)
  32. ->Range(0, 128 * 1024 * 1024);
  33. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, InProcessCHTTP2)
  34. ->Range(0, 128 * 1024 * 1024);
  35. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, TCP)
  36. ->Range(0, 128 * 1024 * 1024);
  37. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, UDS)
  38. ->Range(0, 128 * 1024 * 1024);
  39. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, InProcess)
  40. ->Range(0, 128 * 1024 * 1024);
  41. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, InProcessCHTTP2)
  42. ->Range(0, 128 * 1024 * 1024);
  43. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, MinTCP)->Arg(0);
  44. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, MinUDS)->Arg(0);
  45. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, MinInProcess)->Arg(0);
  46. BENCHMARK_TEMPLATE(BM_PumpStreamClientToServer, MinInProcessCHTTP2)->Arg(0);
  47. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, MinTCP)->Arg(0);
  48. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, MinUDS)->Arg(0);
  49. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, MinInProcess)->Arg(0);
  50. BENCHMARK_TEMPLATE(BM_PumpStreamServerToClient, MinInProcessCHTTP2)->Arg(0);
  51. } // namespace testing
  52. } // namespace grpc
  53. // Some distros have RunSpecifiedBenchmarks under the benchmark namespace,
  54. // and others do not. This allows us to support both modes.
  55. namespace benchmark {
  56. void RunTheBenchmarksNamespaced() { RunSpecifiedBenchmarks(); }
  57. } // namespace benchmark
  58. int main(int argc, char** argv) {
  59. grpc::testing::TestEnvironment env(argc, argv);
  60. LibraryInitializer libInit;
  61. ::benchmark::Initialize(&argc, argv);
  62. grpc::testing::InitTest(&argc, &argv, false);
  63. benchmark::RunTheBenchmarksNamespaced();
  64. return 0;
  65. }