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 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 NewClientConnWithContext

            func NewClientConnWithContext(ctx context.Context, addr string, opts ...grpc.DialOption) *grpc.ClientConn

              NewClientConnWithContext creates a gRPC client connection to addr using ctx.

              func NewPayload

              func NewPayload(t testpb.PayloadType, size int) *testpb.Payload

                NewPayload creates a payload with the given type and size.

                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 main provides a client used for benchmarking.
                    Package main provides a client used for benchmarking.
                    Package flags provide convenience types and routines to accept specific types of flag values on the command line.
                    Package flags provide convenience types and routines to accept specific types of flag values on the command line.
                    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.
                    Package main provides a server used for benchmarking.
                    Package main provides a server used for benchmarking.
                    Package stats tracks the statistics associated with benchmark runs.
                    Package stats tracks the statistics associated with benchmark runs.