gRPC is designed to support high-performance open-source RPCs in many languages. This page describes performance benchmarking tools, scenarios considered by tests, and the testing infrastructure.
gRPC is designed to support high-performance open-source RPCs in many languages. This page describes performance benchmarking tools, scenarios considered by tests, and the testing infrastructure.
Overview
gRPC is designed for both high-performance and high-productivity design of
distributed applications. Continuous performance benchmarking is a critical part
of the gRPC development workflow. Multi-language performance tests run every few
hours against the master branch, and these numbers are reported to a dashboard
for visualization.
Each language implements a performance testing worker that implements a gRPC
WorkerService.
This service directs the worker to act as either a client or a server for the
actual benchmark test, represented as
BenchmarkService.
That service has two methods:
UnaryCall – a unary RPC of a simple request that specifies the number of bytes
to return in the response.
StreamingCall – a streaming RPC that allows repeated ping-pongs of request and
response messages akin to the UnaryCall.