Documentation

Overview

    Package benchmark implements the building blocks to setup end-to-end gRPC benchmarks.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func AddOne

    func AddOne(features []int, featuresMaxPosition []int)

      AddOne add 1 to the features slice

      func DoByteBufStreamingRoundTrip

      func DoByteBufStreamingRoundTrip(stream testpb.BenchmarkService_StreamingCallClient, reqSize, respSize int) error

        DoByteBufStreamingRoundTrip performs a round trip for a single streaming rpc, using a custom codec for byte buffer.

        func DoStreamingRoundTrip

        func DoStreamingRoundTrip(stream testpb.BenchmarkService_StreamingCallClient, reqSize, respSize int) error

          DoStreamingRoundTrip performs a round trip for a single streaming rpc.

          func DoUnaryCall

          func DoUnaryCall(tc testpb.BenchmarkServiceClient, reqSize, respSize int) error

            DoUnaryCall performs an unary RPC with given stub and request and response sizes.

            func NewClientConn

            func NewClientConn(addr string, opts ...grpc.DialOption) *grpc.ClientConn

              NewClientConn creates a gRPC client connection to addr.

              func StartServer

              func StartServer(info ServerInfo, opts ...grpc.ServerOption) func()

                StartServer starts a gRPC server serving a benchmark service according to info. It returns a function to stop the server.

                Types

                type ServerInfo

                type ServerInfo struct {
                	// Type is the type of the server.
                	// It should be "protobuf" or "bytebuf".
                	Type string
                
                	// Metadata is an optional configuration.
                	// For "protobuf", it's ignored.
                	// For "bytebuf", it should be an int representing response size.
                	Metadata interface{}
                
                	// Listener is the network listener for the server to use
                	Listener net.Listener
                }

                  ServerInfo contains the information to create a gRPC benchmark server.

                  Source Files

                  Directories

                  Path Synopsis
                  Package main provides benchmark with setting flags.
                  Package main provides benchmark with setting flags.
                  To format the benchmark result: go run benchmark/benchresult/main.go resultfile To see the performance change based on a old result: go run benchmark/benchresult/main.go resultfile_old resultfile It will print the comparison result of intersection benchmarks between two files.
                  To format the benchmark result: go run benchmark/benchresult/main.go resultfile To see the performance change based on a old result: go run benchmark/benchresult/main.go resultfile_old resultfile It will print the comparison result of intersection benchmarks between two files.
                  Package grpc_testing is a generated protocol buffer package.
                  Package grpc_testing is a generated protocol buffer package.
                  Package latency provides wrappers for net.Conn, net.Listener, and net.Dialers, designed to interoperate to inject real-world latency into network connections.
                  Package latency provides wrappers for net.Conn, net.Listener, and net.Dialers, designed to interoperate to inject real-world latency into network connections.