aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@users.noreply.github.com>2018-10-23 08:43:03 +0200
committerGravatar GitHub <noreply@github.com>2018-10-23 08:43:03 +0200
commit333a1dc35b02bcbe9a672451b91b1f29dae33939 (patch)
treed67857badee9da0b1d795fdd36f5acf16705dad3
parentd0cc6bf255a0928a56b48223c3cfcb4b7391f45e (diff)
parent84c74b67f88bd9c7782fcb14e46f94fa958931cb (diff)
Merge pull request #16960 from jtattermusch/perf_benchmark_polish2
C++ benchmark: build C++ with assembly optimizations
-rwxr-xr-xtools/run_tests/performance/build_performance.sh14
-rwxr-xr-xtools/run_tests/performance/run_qps_driver.sh2
-rw-r--r--tools/run_tests/performance/scenario_config.py2
-rwxr-xr-xtools/run_tests/run_performance_tests.py2
4 files changed, 13 insertions, 7 deletions
diff --git a/tools/run_tests/performance/build_performance.sh b/tools/run_tests/performance/build_performance.sh
index 9e6e72d97b..ab6bffdc34 100755
--- a/tools/run_tests/performance/build_performance.sh
+++ b/tools/run_tests/performance/build_performance.sh
@@ -25,10 +25,16 @@ CONFIG=${CONFIG:-opt}
# TODO(jtattermusch): C++ worker and driver are not buildable on Windows yet
if [ "$OSTYPE" != "msys" ]
then
- # TODO(jtattermusch): not embedding OpenSSL breaks the C# build because
- # grpc_csharp_ext needs OpenSSL embedded and some intermediate files from
- # this build will be reused.
- make CONFIG="${CONFIG}" EMBED_OPENSSL=true EMBED_ZLIB=true qps_worker qps_json_driver -j8
+ # build C++ with cmake as building with "make" disables boringssl assembly
+ # optimizations that can have huge impact on secure channel throughput.
+ mkdir -p cmake/build
+ cd cmake/build
+ cmake -DgRPC_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release ../..
+ make qps_worker qps_json_driver -j8
+ cd ../..
+ # unbreak subsequent make builds by restoring zconf.h (previously renamed by cmake build)
+ # See https://github.com/grpc/grpc/issues/11581
+ (cd third_party/zlib; git checkout zconf.h)
fi
PHP_ALREADY_BUILT=""
diff --git a/tools/run_tests/performance/run_qps_driver.sh b/tools/run_tests/performance/run_qps_driver.sh
index 2d9e310dec..47a03db026 100755
--- a/tools/run_tests/performance/run_qps_driver.sh
+++ b/tools/run_tests/performance/run_qps_driver.sh
@@ -17,7 +17,7 @@ set -ex
cd "$(dirname "$0")/../../.."
-bins/opt/qps_json_driver "$@"
+cmake/build/qps_json_driver "$@"
if [ "$BQ_RESULT_TABLE" != "" ]
then
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
index 83b555f766..481918c52e 100644
--- a/tools/run_tests/performance/scenario_config.py
+++ b/tools/run_tests/performance/scenario_config.py
@@ -231,7 +231,7 @@ class CXXLanguage:
self.safename = 'cxx'
def worker_cmdline(self):
- return ['bins/opt/qps_worker']
+ return ['cmake/build/qps_worker']
def worker_port_offset(self):
return 0
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
index 33259e9348..c6e67eaf56 100755
--- a/tools/run_tests/run_performance_tests.py
+++ b/tools/run_tests/run_performance_tests.py
@@ -144,7 +144,7 @@ def create_scenario_jobspec(scenario_json,
def create_quit_jobspec(workers, remote_host=None):
"""Runs quit using QPS driver."""
# setting QPS_WORKERS env variable here makes sure it works with SSH too.
- cmd = 'QPS_WORKERS="%s" bins/opt/qps_json_driver --quit' % ','.join(
+ cmd = 'QPS_WORKERS="%s" cmake/build/qps_json_driver --quit' % ','.join(
w.host_and_port for w in workers)
if remote_host:
user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, remote_host)