|
|
|
@ -31,8 +31,9 @@ require 'src/proto/grpc/testing/services_services_pb' |
|
|
|
|
require 'src/proto/grpc/testing/proxy-service_services_pb' |
|
|
|
|
|
|
|
|
|
class ProxyBenchmarkClientServiceImpl < Grpc::Testing::ProxyClientService::Service |
|
|
|
|
def initialize(port) |
|
|
|
|
def initialize(port, c_ext) |
|
|
|
|
@mytarget = "localhost:" + port.to_s |
|
|
|
|
@use_c_ext = c_ext |
|
|
|
|
end |
|
|
|
|
def setup(config) |
|
|
|
|
@config = config |
|
|
|
@ -41,7 +42,13 @@ class ProxyBenchmarkClientServiceImpl < Grpc::Testing::ProxyClientService::Servi |
|
|
|
|
@histogram = Histogram.new(@histres, @histmax) |
|
|
|
|
@start_time = Time.now |
|
|
|
|
# TODO(vjpai): Support multiple client channels by spawning off a PHP client per channel |
|
|
|
|
command = "php -d extension=" + File.expand_path(File.dirname(__FILE__)) + "/../../php/ext/grpc/modules/grpc.so " + File.expand_path(File.dirname(__FILE__)) + "/../../php/tests/qps/client.php " + @mytarget |
|
|
|
|
if @use_c_ext |
|
|
|
|
puts "Use protobuf c extension" |
|
|
|
|
command = "php -d extension=" + File.expand_path(File.dirname(__FILE__)) + "/../../php/tests/qps/vendor/google/protobuf/php/ext/google/protobuf/modules/protobuf.so " + "-d extension=" + File.expand_path(File.dirname(__FILE__)) + "/../../php/ext/grpc/modules/grpc.so " + File.expand_path(File.dirname(__FILE__)) + "/../../php/tests/qps/client.php " + @mytarget |
|
|
|
|
else |
|
|
|
|
puts "Use protobuf php extension" |
|
|
|
|
command = "php -d extension=" + File.expand_path(File.dirname(__FILE__)) + "/../../php/ext/grpc/modules/grpc.so " + File.expand_path(File.dirname(__FILE__)) + "/../../php/tests/qps/client.php " + @mytarget |
|
|
|
|
end |
|
|
|
|
puts "Starting command: " + command |
|
|
|
|
@php_pid = spawn(command) |
|
|
|
|
end |
|
|
|
@ -128,6 +135,9 @@ def proxymain |
|
|
|
|
opts.on('--driver_port PORT', '<port>') do |v| |
|
|
|
|
options['driver_port'] = v |
|
|
|
|
end |
|
|
|
|
opts.on("-c", "--[no-]c_proto_ext", "Use protobuf C-extention") do |c| |
|
|
|
|
options[:c_ext] = c |
|
|
|
|
end |
|
|
|
|
end.parse! |
|
|
|
|
|
|
|
|
|
# Configure any errors with client or server child threads to surface |
|
|
|
@ -136,7 +146,7 @@ def proxymain |
|
|
|
|
s = GRPC::RpcServer.new |
|
|
|
|
port = s.add_http2_port("0.0.0.0:" + options['driver_port'].to_s, |
|
|
|
|
:this_port_is_insecure) |
|
|
|
|
bmc = ProxyBenchmarkClientServiceImpl.new(port) |
|
|
|
|
bmc = ProxyBenchmarkClientServiceImpl.new(port, options[:c_ext]) |
|
|
|
|
s.handle(bmc) |
|
|
|
|
s.handle(ProxyWorkerServiceImpl.new(s, bmc)) |
|
|
|
|
s.run |
|
|
|
|